#!/usr/bin/env bash
#set -x

# ======================== !! NOTE !! ========================
#  ________ ________ ________ ________ ________ ________ ________ ________ ________     ___    ___
# |\  _____\\  _____\\  _____\\  _____\\  _____\\  _____\\  _____\\  _____\\   __  \   |\  \  /  /|
# \ \  \__/\ \  \__/\ \  \__/\ \  \__/\ \  \__/\ \  \__/\ \  \__/\ \  \__/\ \  \|\  \  \ \  \/  / /
#  \ \   __\\ \   __\\ \   __\\ \   __\\ \   __\\ \   __\\ \   __\\ \   __\\ \  \\\  \  \ \    / /
#   \ \  \_| \ \  \_| \ \  \_| \ \  \_| \ \  \_| \ \  \_| \ \  \_| \ \  \_| \ \  \\\  \  /     \/
#    \ \__\   \ \__\   \ \__\   \ \__\   \ \__\   \ \__\   \ \__\   \ \__\   \ \_______\/  /\   \
#     \|__|    \|__|    \|__|    \|__|    \|__|    \|__|    \|__|    \|__|    \|_______/__/ /\ __\
#                                                                                      |__|/ \|__|
# 注: 该脚本适用于 debian、kali、Ubuntu、Centos、RedHat、Fedora 等系列系统下
# 注: 完全适配 debian 系列系统
# 注: 基本适配 RedHat 系列系统
# 注: 适配 Centos8 和 Fedora 系统时有些小bug,但不影响使用,可以忽略
# 注: 走代理时,请确认配置好 Proxychains-ng 代理
# ======================== !! NOTE !! ========================

# ===================== 基础变量设置 =====================
P_Dir=/pentest
T_Dir=/ffffffff0x
Default_DNS=223.5.5.5
Proxy_URL="https://cdn.ffffffff0x.com/?durl=https://codeload.github.com/rofl0r/proxychains-ng/zip/master"
Porxy_OK=
Docker_OK=
error=0
F8x_Version="1.4.7 Dev"

# ===================== 软件版本变量设置 =====================
jdk_Version=jdk1.8.0_271
CS_File=CobaltStrike4.1.zip
CS_Version=CobaltStrike4.1
AdGuardHome_Version=v0.105.0-beta.2
AdguardTeam_File=AdGuardHome_linux_amd64.tar.gz
frp_Version=v0.34.3
frp_File=frp_0.34.3_linux_amd64.tar.gz
frp_Dir=frp_0.34.3_linux_amd64
nps_Ver=v0.26.9
nps_Install=linux_amd64_server.tar.gz
sharry_File=sharry-restserver-1.6.0.zip
Ruby_Ver=3.0
Ruby_Dir=ruby-3.0.0
Ruby_Install=ruby-3.0.0.tar.gz
RustScan_Version=2.0.1
RustScan_Install=rustscan_2.0.1_amd64.deb
ksubdomain_Ver=v0.6
ksubdomain_Install=ksubdomain_linux.zip
Go_Bin=go1.15.6.linux-amd64.tar.gz
xray_Ver=1.7.0
xray_File=xray_linux_amd64.zip
goby_Ver=Beta1.8.230
goby_File=goby-linux-x64-1.8.230.zip
fscan_Ver=1.4
fscan_Install=fscan_amd64
ffuf_Ver=v1.1.0
ffuf_Install=ffuf_1.1.0_linux_amd64.tar.gz
Nuclei_Ver=v2.2.0
Nuclei_Install=nuclei_2.2.0_linux_amd64.tar.gz
rad_Ver=0.3
rad_File=rad_linux_amd64.zip
crawlergo_Ver=v0.4.0
crawlergo_File=crawlergo_linux_amd64.zip
Terraform_Ver="0.14.6"
Terraform_bin="terraform_0.14.6_linux_amd64.zip"
CrossC2_Ver="v2.2"
node_Ver="v14.16.0"
node_bin="node-v14.16.0-linux-x64.tar.xz"
node_Dir="node-v14.16.0-linux-x64"
Girsh_Ver="v0.2"
Girsh_bin="Girsh-v0.2-linux-amd64.tar.gz"

# ===================== 基础文件夹 =====================
Base_Dir(){

    mkdir -p /tmp > /dev/null 2>&1

    if test -d $T_Dir
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m$T_Dir 文件夹已存在\033[0m"
    else
        mkdir -p $T_Dir && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已新建 $T_Dir 文件夹\033[0m"
    fi

    timedatectl set-timezone Asia/Shanghai > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前时区已设置为 Asia/Shanghai\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m时区设置失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

    date +"%Y-%m-%d" > /tmp/f8x_error.log

}

# ===================== 除锁模块 =====================
Rm_Lock(){

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            rm -f /var/run/yum.pid 1> /dev/null 2>> /tmp/f8x_error.log
            rm -f /var/cache/dnf/metadata_lock.pid 1> /dev/null 2>> /tmp/f8x_error.log
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            rm -rf /var/cache/apt/archives/lock 1> /dev/null 2>> /tmp/f8x_error.log
            rm -rf /var/lib/dpkg/lock-frontend 1> /dev/null 2>> /tmp/f8x_error.log
            rm -rf /var/lib/dpkg/lock 1> /dev/null 2>> /tmp/f8x_error.log
            rm -rf /var/lib/apt/lists/lock 1> /dev/null 2>> /tmp/f8x_error.log
            apt-get --fix-broken install 1> /dev/null 2>> /tmp/f8x_error.log
            rm -rf /var/cache/apt/archives/lock 1> /dev/null 2>> /tmp/f8x_error.log
            rm -rf /var/lib/dpkg/lock-frontend 1> /dev/null 2>> /tmp/f8x_error.log
            rm -rf /var/lib/dpkg/lock 1> /dev/null 2>> /tmp/f8x_error.log
            rm -rf /var/lib/apt/lists/lock 1> /dev/null 2>> /tmp/f8x_error.log
            ;;
        *) ;;
    esac

}

Docker_Check(){

    case $(ls -alh /.dockerenv 2>> /tmp/f8x_error.log) in
    *"docker"*)
        case $(cat /proc/1/cgroup 2>> /tmp/f8x_error.log) in
        *"docker"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m当前运行在 Docker 环境下,f8x 可能会有无法预期的问题,见谅\033[0m"
            Docker_OK=1
            ;;
        esac
        ;;
    esac

}

# ===================== 依赖检查模块 =====================
Base_Check(){

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在检查各项依赖\033[0m"
    unzip -v 1> /dev/null 2>> /tmp/f8x_error.log || error=1
    wget --version 1> /dev/null 2>> /tmp/f8x_error.log || error=1
    curl --version 1> /dev/null 2>> /tmp/f8x_error.log || error=1
    vim --version 1> /dev/null 2>> /tmp/f8x_error.log || error=1
    git --version 1> /dev/null 2>> /tmp/f8x_error.log || error=1

    if [ $error == 1 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m依赖项不通过,即将自动安装基本依赖\033[0m"
        Base_Install
        error=0
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m依赖项正常\033[0m"
    fi

}

Py_Check(){

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在检测 Python 环境可用性\033[0m"
    python2 -V 1> /dev/null 2>> /tmp/f8x_error.log || error=1
    python3 -V 1> /dev/null 2>> /tmp/f8x_error.log || error=1
    #pip2 -V 1> /dev/null 2>> /tmp/f8x_error.log || error=1
    pip3 -V 1> /dev/null 2>> /tmp/f8x_error.log || error=1

    if [ $error == 1 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m开发环境检查不通过,即将自动安装 Python 环境\033[0m"
        Python3_Install
        Python2_Install
        error=0
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m开发环境正常\033[0m"
    fi

}

pip2_Check(){

    pip2 -V 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mpip2 可用\033[0m"

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m依赖项不通过,即将自动安装 pip2\033[0m"
        Python2_Install
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m依赖项正常\033[0m"
    fi
}

pip3_Check(){

    pip3 -V 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mpip3 可用\033[0m"

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m依赖项不通过,即将自动安装 pip3\033[0m"
        Python3_Install
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m依赖项正常\033[0m"
    fi
}

nn_Check(){

    echo -e "\033[1;33m\n>> 正在检测 npm & nodejs 可用性\n\033[0m"
    npm version 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mnpm 可用\033[0m" || error=1
    node --version 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mnode $(node --version) 可用\033[0m" || error=1

    if [ $error == 1 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m依赖项不通过,即将自动安装 npm & nodejs\033[0m"
        nn_Install
        error=0
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m依赖项正常\033[0m"
    fi

}

Rust_Check(){

    echo -e "\033[1;33m\n>> 正在检测 Rust 可用性\n\033[0m"
    cargo -V 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mnode $(cargo -V) 可用\033[0m"

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m依赖项不通过,即将自动安装 Rust\033[0m"
        Rust_Install
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m依赖项正常\033[0m"
    fi

}

# ===================== 代理开关 =====================
Porxy_Switch(){

    if test -e /tmp/IS_CI
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mIS_CI\033[0m"
    else
        echo -e "\033[1;33m\n>> 安装时是否需要走代理? [y/N,默认No] \033[0m" && read -r input
        case $input in
            [yY][eE][sS]|[Yy])
                export GOPROXY=https://goproxy.io,direct
                if test -e /etc/proxychains.conf
                then
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m正在调用 Proxychains-ng\033[0m"
                    Porxy_OK=proxychains4
                else
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m未检测到 Proxychains-ng,正在执行自动安装脚本\033[0m"
                    Proxychains_Install
                    Porxy_OK=proxychains4
                fi
                ;;
            *)
                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mPass~\033[0m"
                ;;
        esac
    fi

}

# ===================== Default =====================
Info(){

    echo -e "\033[1;34m  _______   ___   ___   ___ \033[0m"
    echo -e "\033[1;32m |   ____| / _ \  \  \ /  / \033[0m"
    echo -e "\033[1;36m |  |__   | (_) |  \  V  / \033[0m"
    echo -e "\033[1;31m |   __|   > _ <    >   < \033[0m"
    echo -e "\033[1;35m |  |     | (_) |  /  .  \ \033[0m"
    echo -e "\033[1;33m |__|      \___/  /__/ \__\ \n\033[0m"

    case $(cat /etc/*-release | head -n 1) in
        *"Kali"*|*"kali"*)
            Linux_Version="Kali"
            case $(cat /etc/*-release | head -n 4) in
                *"2021"*)
                    Linux_Version_Num="kali-rolling"
                    Linux_Version_Name="buster"
                    ;;
                *"2020"*)
                    Linux_Version_Num="kali-rolling"
                    Linux_Version_Name="buster"
                    ;;
                *)
                    Linux_Version_Num="kali-rolling"
                    Linux_Version_Name="stretch"
                    ;;
            esac
            ;;
        *"Ubuntu"*|*"ubuntu"*)
            Linux_Version="Ubuntu"
            case $(cat /etc/*-release | head -n 4) in
                *"hirsute"*)
                    Linux_Version_Num="21.04"
                    Linux_Version_Name="hirsute"
                    ;;
                *"groovy"*)
                    Linux_Version_Num="20.10"
                    Linux_Version_Name="groovy"
                    ;;
                *"focal"*)
                    Linux_Version_Num="20.04"
                    Linux_Version_Name="focal"
                    ;;
                *"eoan"*)
                    Linux_Version_Num="19.10"
                    Linux_Version_Name="eoan"
                    ;;
                *"bionic"*)
                    Linux_Version_Num="18.04"
                    Linux_Version_Name="bionic"
                    ;;
                *"xenial"*)
                    Linux_Version_Num="16.04"
                    Linux_Version_Name="xenial"
                    ;;
                *)
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m未知版本\033[0m"
                    exit 1
                    ;;
            esac
            ;;
        *"Debian"*|*"debian"*)
            Linux_Version="Debian"
            case $(cat /etc/*-release | head -n 4) in
                *"bullseye"*)
                    Linux_Version_Num="11"
                    Linux_Version_Name="bullseye"
                    ;;
                *"buster"*)
                    Linux_Version_Num="10"
                    Linux_Version_Name="buster"
                    ;;
                *"stretch"*)
                    Linux_Version_Num="9"
                    Linux_Version_Name="stretch"
                    ;;
                *"jessie"*)
                    Linux_Version_Num="8"
                    Linux_Version_Name="jessie"
                    ;;
                *"wheezy"*)
                    Linux_Version_Num="7"
                    Linux_Version_Name="wheezy"
                    ;;
                *)
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m未知版本\033[0m"
                    exit 1
                    ;;
            esac
            ;;
        *"CentOS"*|*"centos"*)
            echo -e "\033[1;31m珍惜生命,少用 Centos\033[0m"
            Linux_Version="CentOS"
            case $(cat /etc/*-release | head -n 1) in
                *"release 8"*)
                    Linux_Version_Num="8"
                    Linux_Version_Name=""
                    ;;
                *"release 7"*)
                    Linux_Version_Num="7"
                    Linux_Version_Name=""
                    ;;
                *"release 6"*)
                    Linux_Version_Num="6"
                    Linux_Version_Name=""
                    ;;
                *)
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m未知版本\033[0m"
                    exit 1
                    ;;
            esac
            ;;
        *"RedHat"*|*"redhat"*)
            Linux_Version="RedHat" ;;
        *"Fedora"*|*"fedora"*)
            Linux_Version="Fedora"
            case $(cat /etc/*-release | head -n 1) in
                *"release 34"*)
                    Linux_Version_Num="34"
                    Linux_Version_Name=""
                    ;;
                *"release 33"*)
                    Linux_Version_Num="33"
                    Linux_Version_Name=""
                    ;;
                *"release 32"*)
                    Linux_Version_Num="32"
                    Linux_Version_Name=""
                    ;;
                *)
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m未知版本\033[0m"
                    exit 1
                    ;;
            esac
            ;;
        *)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m未知系统\033[0m"
            echo -e "\033[1;33m\n请手动输入你的系统发行版 Kali[k] Ubuntu[u] Debian[d] Centos[c] RedHat[r] Fedora[f]\033[0m" && read -r input
            case $input in
                [kK])
                    Linux_Version="Kali" ;;
                [uU])
                    Linux_Version="Ubuntu"
                    echo -e "\033[1;33m\n请手动输入你的系统版本号 [21.04] [20.10] [20.04] [19.10] [18.04] [16.04]\033[0m" && read -r input
                    Linux_Version_Name=$input
                    ;;
                [dD])
                    Linux_Version="Debian"
                    echo -e "\033[1;33m\n请手动输入你的系统版本号 [11] [10] [9] [8] [7]\033[0m" && read -r input
                    Linux_Version_Name=$input
                    ;;
                [cC])
                    Linux_Version="CentOS"
                    echo -e "\033[1;33m\n请手动输入你的系统版本号 [8] [7] [6]\033[0m" && read -r input
                    Linux_Version_Name=$input
                    ;;
                [rR])
                    Linux_Version="RedHat" ;;
                [fF])
                    Linux_Version="Fedora"
                    echo -e "\033[1;33m\n请手动输入你的系统版本号 [34] [33] [32]\033[0m" && read -r input
                    Linux_Version_Name=$input
                    ;;
                *)
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m未知版本\033[0m"
                    exit 1
                    ;;
            esac
            ;;
    esac

    echo -e "\033[1;32m当前发行版 :\033[0m \033[1;35m$Linux_Version $Linux_Version_Num $Linux_Version_Name \033[0m"
    echo -e "\033[1;32m当前主机名 :\033[0m \033[1;35m$(hostname) \033[0m"
    echo -e "\033[1;32m当前用户 :\033[0m \033[1;35m$(whoami) \033[0m"
    echo -e "\033[1;32m当前 UID :\033[0m \033[1;35m$UID \033[0m"
    echo -e "\033[1;32m当前日期 :\033[0m \033[1;35m$(date +"%Y-%m-%d") \033[0m"
    echo -e "\033[1;32m当前时间 :\033[0m \033[1;35m$(date +"%H:%M:%S") \033[0m"
    echo -e "\033[1;32m开机运行时长 :\033[0m \033[1;35m$(uptime | awk '{print $3 $4}' | sed 's/\,.*$//g') \033[0m"

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            if test -e /var/log/secure
            then
                echo -e "\033[1;32m最近登陆IP :\033[0m"
                echo -e "\033[1;35m$(grep 'Accepted' /var/log/secure | awk '{print $11}' | sort | uniq -c | sort -nr) \033[0m"
            fi
            ;;
        *"Kali"*)
                echo "" > /dev/null
            ;;
        *)
            if test -e /var/log/auth.log
            then
                echo -e "\033[1;32m最近登陆IP :\033[0m"
                echo -e "\033[1;35m$(grep "Accepted " /var/log/auth.log | awk '{print $11}' | sort | uniq -c | sort -nr) \033[0m"
            fi
            ;;

    esac

    echo -e "\033[1;32m当前版本 :\033[0m \033[1;35m$F8x_Version \033[0m"
}

# ===================== 修改 apt 源 =====================
Update_APT_Mirror(){

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;33m正在更新 $Linux_Version apt 源\033[0m"

    case $Linux_Version in
        *"Kali"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mkali\033[0m"
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
            Update_kali_Mirror > /dev/null
            ;;
        *"Ubuntu"*)
            case $Linux_Version_Num in
                "21.04")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mUbuntu21.04\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Ubuntu2104_Mirror > /dev/null
                    ;;
                "20.10")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mUbuntu20.10\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Ubuntu2010_Mirror > /dev/null
                    ;;
                "20.04")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mUbuntu20.04\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Ubuntu2004_Mirror > /dev/null
                    ;;
                "19.10")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mUbuntu18.04\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Ubuntu1910_Mirror > /dev/null
                    ;;
                "18.04")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mUbuntu18.04\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Ubuntu1804_Mirror > /dev/null
                    ;;
                "16.04")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mUbuntu16.04\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Ubuntu1604_Mirror > /dev/null
                    ;;
                *)
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m版本错误,此项 pass\n\033[0m"
                    ;;
            esac
            ;;
        *"Debian"*)
            case $Linux_Version_Num in
                "11")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mDebian11\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Debian11_Mirror > /dev/null
                    ;;
                "10")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mDebian10\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Debian10_Mirror > /dev/null
                    ;;
                "9")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mDebian9\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Debian9_Mirror > /dev/null
                    ;;
                "8")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mDebian8\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Debian8_Mirror > /dev/null
                    ;;
                "7")
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mDebian7\033[0m"
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 apt 源\033[0m"
                    Update_Debian7_Mirror > /dev/null
                    ;;
                *)
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m版本错误,此项 pass\n\033[0m"
                    ;;
            esac
            ;;
    esac

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在更新 apt 软件包列表,该步骤可能运行较长时间,请耐心等待,若长时间没有反应,请手动按下回车键\033[0m"
    Rm_Lock
    apt-get update 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新 apt 软件包列表失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# ===================== 修改 kali apt 源 =====================
Update_kali_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
# deb-src https://mirrors.aliyun.com/kali kali-rolling main non-free contrib
deb http://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
# deb-src https://mirrors.tuna.tsinghua.edu.cn/kali kali-rolling main contrib non-free
deb http://http.kali.org/kali kali-rolling main non-free contrib
# deb-src http://http.kali.org/kali kali-rolling main non-free contrib
EOF

}

# ===================== 修改 Ubuntu apt 源 =====================
Update_Ubuntu2104_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ groovy-security main restricted universe multiverse
EOF

}

Update_Ubuntu2010_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/ubuntu/ groovy main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ groovy main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ groovy-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ groovy-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ groovy-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ groovy-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ groovy-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ groovy-backports main restricted universe multiverse
EOF

}

Update_Ubuntu2004_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
EOF

}

Update_Ubuntu1910_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ eoan-security main restricted universe multiverse
EOF

}

Update_Ubuntu1804_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
# deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
EOF

}

Update_Ubuntu1604_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/ubuntu/ xenial main
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial main
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates main
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates main
deb http://mirrors.aliyun.com/ubuntu/ xenial universe
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-updates universe
deb http://mirrors.aliyun.com/ubuntu/ xenial-security main
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security main
deb http://mirrors.aliyun.com/ubuntu/ xenial-security universe
# deb-src http://mirrors.aliyun.com/ubuntu/ xenial-security universe
EOF

}

# ===================== 修改 Debian11 apt 源 =====================
Update_Debian11_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ bullseye main non-free contrib
deb http://mirrors.aliyun.com/debian-security bullseye/updates main
# deb-src http://mirrors.aliyun.com/debian-security bullseye/updates main
deb http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ bullseye-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ bullseye-backports main non-free contrib
EOF

}

# ===================== 修改 Debian10 apt 源 =====================
Update_Debian10_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/debian/ buster main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ buster main non-free contrib
deb http://mirrors.aliyun.com/debian-security buster/updates main
# deb-src http://mirrors.aliyun.com/debian-security buster/updates main
deb http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ buster-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ buster-backports main non-free contrib
EOF

}

Update_Debian9_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/debian/ stretch main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ stretch main non-free contrib
deb http://mirrors.aliyun.com/debian-security stretch/updates main
# deb-src http://mirrors.aliyun.com/debian-security stretch/updates main
deb http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ stretch-updates main non-free contrib
deb http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ stretch-backports main non-free contrib
EOF

}

Update_Debian8_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/debian/ jessie main non-free contrib
deb http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ jessie main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ jessie-proposed-updates main non-free contrib
EOF

}

Update_Debian7_Mirror(){
rm -rf /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/apt/sources.list /etc/apt/sources.list.bak 1> /dev/null 2>> /tmp/f8x_error.log
tee /etc/apt/sources.list <<-'EOF'
# 默认注释了源码镜像以提高 apt update 速度，如有需要可自行取消注释
deb http://mirrors.aliyun.com/debian/ wheezy main non-free contrib
deb http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ wheezy main non-free contrib
# deb-src http://mirrors.aliyun.com/debian/ wheezy-proposed-updates main non-free contrib
EOF

}

# ===================== 修改 YUM 源 =====================
Update_YUM_Mirror(){

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在更新 $Linux_Version yum 源\033[0m"

    case $Linux_Version in
        *"CentOS"*)
            Update_CentOS_Mirror
            Update_EPEL_Mirror
            ;;
        *"RedHat"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mRedHat Pass\033[0m" ;;
        *"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mFedora\033[0m"
            rm -rf /etc/yum.repos.d/fedora.repo.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/yum.repos.d/fedora.repo /etc/yum.repos.d/fedora.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 Yum 源\033[0m"
            curl -o /etc/yum.repos.d/fedora.repo http://mirrors.aliyun.com/repo/fedora.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun Yum 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun Yum 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            curl -o /etc/yum.repos.d/fedora-updates.repo http://mirrors.aliyun.com/repo/fedora-updates.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun Yum update 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun Yum update 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
    esac

    Rm_Lock && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在更新 yum 缓存,该步骤可能运行较长时间,请耐心等待,若长时间没有反应,请手动按下回车键\033[0m"
    yum clean all 1> /dev/null 2>> /tmp/f8x_error.log
    Rm_Lock

    case $Linux_Version in
        *"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m年轻人少用 Fedora ＞﹏＜\033[0m"
            ;;
        *)
            yum makecache 1> /dev/null 2>> /tmp/f8x_error.log /dev/null || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mYum makecache失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
    esac

}

# ===================== 修改 CentOS EPEL 源 =====================
Update_EPEL_Mirror(){

    if test -e /etc/yum.repos.d/epel.repo
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mEPEL 源已安装\033[0m"
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m未监测到 epel 源,正在自动安装\033[0m"
        Rm_Lock
        case $Linux_Version_Num in
            8)
                yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun EPEL 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun EPEL 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                sed -i 's|^#baseurl=https://download.fedoraproject.org/pub|baseurl=https://mirrors.aliyun.com|' /etc/yum.repos.d/epel*
                sed -i 's|^metalink|#metalink|' /etc/yum.repos.d/epel*
                ;;
            7)
                curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun EPEL 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun EPEL 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                ;;
            6)
                curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun EPEL 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun EPEL 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                ;;
            *)
                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m版本错误,此项 pass\n\033[0m"
                ;;
        esac
    fi

}

# ===================== 修改 CentOS YUM 源 =====================
Update_CentOS_Mirror(){

    case $Linux_Version_Num in
        8)
            rm -rf /etc/yum.repos.d/CentOS-Base.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 Yum 源\033[0m"
            curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-8.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun Yum 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun Yum 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        7)
            rm -rf /etc/yum.repos.d/CentOS-Base.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 Yum 源\033[0m"
            curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun Yum 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun Yum 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        6)
            rm -rf /etc/yum.repos.d/CentOS-Base.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && cp /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.bak 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已备份本地 Yum 源\033[0m"
            curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-6.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 aliyun Yum 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31maliyun Yum 源下载失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m版本错误,此项 pass\n\033[0m"
            ;;
    esac

}

# ===================== 修改软件包源 =====================
Mirror(){

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            echo -e "\033[1;33m\n>> 检测系统为 RedHat系,是否需要更新 yum 源? [Y/n,默认Yes]\033[0m" && read -r input
            case $input in
                [nN][oO]|[nN])
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mPass\n\033[0m" ;;
                *)
                    Update_YUM_Mirror
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32myum 源已更新\033[0m" ;;
            esac
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            echo -e "\033[1;33m\n>> 检测系统为 Debian系,是否需要更新 apt 源? [Y/n,默认Yes]\033[0m" && read -r input
            case $input in
                [nN][oO]|[nN])
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mPass\n\033[0m" ;;
                *)
                    Update_APT_Mirror
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mapt 源已更新\033[0m" ;;

            esac
            ;;
        *)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m未知版本,更新软件包源失败！\n\033[0m" ;;
    esac

}

# ===================== 检查 DNS IP 格式 =====================
Change_DNS_IP(){

    read -r input

    case $input in
        [nN][oO]|[nN])
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mNo\n\033[0m" ;;
        *)
            echo -e "\033[5;33m请输入 DNS 服务器地址 [默认为 $Default_DNS]\033[0m" && read -r input

            VALID_CHECK=$(echo "$input"|awk -F. '$1<=255&&$2<=255&&$3<=255&&$4<=255{print "yes"}')
            if echo "$input"|grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$">/dev/null; then
                if [ "${VALID_CHECK:-no}" == "yes" ]; then
                    Default_DNS=$input
                    Change_DNS
                else
                    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$input 不可用! \033[0m"
                    Change_DNS
                fi
            else
                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$input 不可用! \033[0m"
                Change_DNS
            fi
            ;;
    esac

}

# ===================== 更新 DNS =====================
Change_DNS(){

    echo "nameserver $Default_DNS" > /etc/resolv.conf
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m默认 DNS 已配置为: $Default_DNS \033[0m"

}

# ===================== 安装 DNS 工具 =====================
DNS_T00ls(){

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mRedHat 系没有 resolvconf 工具,本项 Pass\033[0m" ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            Rm_Lock
            apt-get install -y resolvconf 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 resolvconf 工具,若需要更改 DNS,请修改 /etc/resolvconf/resolv.conf.d/head 文件\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 resolvconf 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            echo "nameserver $Default_DNS" > /etc/resolvconf/resolv.conf.d/head
            resolvconf -u ;;
        *) ;;
    esac

}

# ===================== 安装 Proxychains-ng =====================
Proxychains_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y gcc 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gcc 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gcc 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y gcc-c++ 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gcc-c++ 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gcc-c++ 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y git 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 git 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 git 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y vim 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 vim 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 vim 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y make 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 make 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 make 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y wget 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 wget 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 wget 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y unzip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 unzip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 unzip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y gcc 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gcc 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gcc 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y g++ 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 g++ 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 g++ 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y vim 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 vim 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 vim 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y make 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 make 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 make 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y wget 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 wget 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 wget 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y unzip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 unzip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 unzip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

    case $Linux_Version in
        *"Kali"*)
            rm -rf /etc/proxychains.conf 1> /dev/null 2>> /tmp/f8x_error.log
            ;;
        *) ;;
    esac

    if test -e /etc/proxychains.conf
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mProxychains-ng 已安装\033[0m"
    else
        echo -e "\033[1;33m\n>> 是否需要从 ffffffff0x.com 安装 proxychains-ng [Y/n,默认Yes]\033[0m" && read -r input

        case $input in
            [nN][oO]|[nN])
                cd $T_Dir && rm -rf proxychains-ng* 1> /dev/null 2>> /tmp/f8x_error.log && git clone https://github.com/rofl0r/proxychains-ng.git $T_Dir/proxychains-ng 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已从 github.com 下载完安装包\033[0m"
                ;;
            *)
                cd $T_Dir && rm -rf proxychains-ng* 1> /dev/null 2>> /tmp/f8x_error.log && wget -O proxychains-ng.zip "$Proxy_URL" > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已从 ffffffff0x.com 下载完安装包\033[0m"
                unzip proxychains-ng.zip 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf proxychains-ng.zip 1> /dev/null 2>> /tmp/f8x_error.log
                mv proxychains-ng-master proxychains-ng
                ;;
        esac

        chmod -R 777 $T_Dir/proxychains-ng 1> /dev/null 2>> /tmp/f8x_error.log
        cd $T_Dir/proxychains-ng && chmod +x configure 1> /dev/null 2>> /tmp/f8x_error.log
        ./configure 1> /dev/null 2>> /tmp/f8x_error.log
        chmod +x ./tools/install.sh 1> /dev/null 2>> /tmp/f8x_error.log
        make 1> /dev/null 2>> /tmp/f8x_error.log && make install 1> /dev/null 2>> /tmp/f8x_error.log
        cp $T_Dir/proxychains-ng/src/proxychains.conf /etc/proxychains.conf
        cd .. && rm -rf proxychains-ng
        vim /etc/proxychains.conf
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Proxychains-ng,若需要更改代理设置,请修改 /etc/proxychains.conf 文件最后一行\033[0m"
    fi

}

# ===================== pip 代理 =====================
pip_Proxy(){

mkdir -p ~/.pip/
tee ~/.pip/pip.conf <<-'EOF'
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host=mirrors.aliyun.com
EOF

}

# ===================== docker 代理 =====================
Docker_Proxy(){

mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://docker.mirrors.ustc.edu.cn"]
}
EOF

}

# ===================== 安装基础工具 =====================
Base_Tools(){

    case $Linux_Version in
        *"CentOS"*)
            Update_EPEL_Mirror;;
        *) ;;
    esac

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y yum-utils 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 yum-utils 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 yum-utils 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y vim 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 vim 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 vim 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y make 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 make 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 make 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y gcc 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gcc 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gcc 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y gcc-c++ 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gcc-c++ 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gcc-c++ 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y curl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 curl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 curl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y git 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 git 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 git 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y lrzsz 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lrzsz 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lrzsz 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y wget 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 wget 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 wget 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y unzip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 unzip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 unzip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y openssl-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 openssl-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 openssl-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y p7zip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 p7zip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 p7zip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y jq 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 jq 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 jq 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y kernel-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 kernel-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 kernel-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y dnf 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 dnf 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 dnf 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y cmake 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 cmake 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 cmake 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y openssl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 openssl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 openssl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get update 1> /dev/null 2>> /tmp/f8x_error.log
            apt-get install -y gcc 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gcc 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gcc 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y g++ 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 g++ 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 g++ 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y make 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 make 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 make 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y vim 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 vim 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 vim 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y git 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 git 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 git 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y curl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 curl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 curl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y lrzsz 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lrzsz 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lrzsz 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y wget 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 wget 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 wget 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y unzip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 unzip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 unzip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y p7zip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 p7zip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 p7zip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y p7zip-full 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 p7zip-full 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 p7zip-full 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y jq 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 jq 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 jq 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y apt-transport-https 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 apt-transport-https 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 apt-transport-https 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y ca-certificates 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ca-certificates 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ca-certificates 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y cmake 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 cmake 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 cmake 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y openssl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 openssl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 openssl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y libssl-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libssl-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libssl-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y libssh2-1-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libssh2-1-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libssh2-1-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y aptitude 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 aptitude 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 aptitude 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y libcurl4-openssl-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libcurl4-openssl-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libcurl4-openssl-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# ===================== 安装开发环境依赖 =====================
Dev_Base_Install(){

    echo -e "\033[1;33m\n>> 正在安装开发环境依赖\n\033[0m"
    Rm_Lock

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum groupinstall -y "Development Tools" 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Development Tools\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Development Tools 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y yara 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 yara 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 yara 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y tree 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 tree 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 tree 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y tcpdump 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 tcpdump 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 tcpdump 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y software-properties-common 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 software-properties-common 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 software-properties-common 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y build-essential 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 build-essential 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 build-essential 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y xfonts-intl-chinese 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xfonts-intl-chinese 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xfonts-intl-chinese 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y ttf-wqy-microhei 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ttf-wqy-microhei 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ttf-wqy-microhei 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y ttf-wqy-zenhei 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ttf-wqy-zenhei 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ttf-wqy-zenhei 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y xfonts-wqy 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xfonts-wqy 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xfonts-wqy 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y yara 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 yara 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 yara 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y nethogs 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 nethogs 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 nethogs 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y tcpdump 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 tcpdump 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 tcpdump 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y tree 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 tree 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 tree 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *)
            ;;
    esac

}

# ===================== 安装 Python 和 pip =====================
Python3_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y python3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y python3-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y python3-pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-pip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            python3 -m pip install --upgrade pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已更新 python3-pip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新 python3-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            pip3 install setuptools 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 setuptools 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 setuptools 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            pip3 install virtualenv 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 virtualenv 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 virtualenv 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y python3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-pip 工具\033[0m"|| echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-venv 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-venv 工具\033[0m"|| echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-venv 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            python3 -m pip install --upgrade pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已更新 python3-pip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新 python3-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *)
            ;;
    esac

}

# ===================== 安装 Go =====================
Go_Install(){

    go version 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mGolang 已存在 \033[0m"
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 Go 安装包(~120M),该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK wget -P $T_Dir https://golang.org/dl/$Go_Bin > /dev/null 2>&1 && tar -C /usr/local -xzf $T_Dir/$Go_Bin && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已从 golang.org 下载完安装包\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 Go 安装包失败! 请检查 proxychains4 配置的代理服务器是否可用!  \n\033[0m"

        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                #export PATH=\$PATH:/usr/local/go/bin
                #export GOROOT=/usr/local/go
                #export GOPATH=\$HOME/Applications/Go

                echo "PATH=\$PATH:/usr/local/go/bin" >> /etc/bashrc
                echo "GOROOT=/usr/local/go" >> /etc/bashrc && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mGOROOT : /usr/local/go\033[0m"
                echo "GOPATH=\$HOME/Applications/Go" >> /etc/bashrc && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mGOPATH : \$HOME/Applications/Go\033[0m"
                ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                #export PATH=\$PATH:/usr/local/go/bin
                #export GOROOT=/usr/local/go
                #export GOPATH=\$HOME/Applications/Go

                echo "PATH=\$PATH:/usr/local/go/bin" >> /etc/bash.bashrc
                echo "GOROOT=/usr/local/go" >> /etc/bash.bashrc && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mGOROOT : /usr/local/go\033[0m"
                echo "GOPATH=\$HOME/Applications/Go" >> /etc/bash.bashrc && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mGOPATH : \$HOME/Applications/Go\033[0m"
                ;;
            *) ;;
        esac

        ln -s /usr/local/go/bin/go /usr/bin/go 1> /dev/null 2>> /tmp/f8x_error.log
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m$(go version)\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mGolang 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        rm -rf ${T_Dir:?}/${Go_Bin} 1> /dev/null 2>> /tmp/f8x_error.log
    fi

}

# ===================== 安装 Docker =====================
Docker_Install(){

    docker -v 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mDocker 环境已存在\033[0m"
    else
        Rm_Lock
        case $Linux_Version in
            *"Fedora"*)
                yum install -y device-mapper-persistent-data 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 device-mapper-persistent-data 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 device-mapper-persistent-data 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                yum install -y lvm2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lvm2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lvm2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在安装 docker,该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK yum install -y docker 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 docker\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 docker 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                ;;
            *"CentOS"*|*"RedHat"*)
                yum install -y device-mapper-persistent-data 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 device-mapper-persistent-data 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 device-mapper-persistent-data 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                yum install -y lvm2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lvm2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lvm2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

                $Porxy_OK curl -o /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已从 docker.com 下载完 docker yum 源\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 docker yum 源失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

                $Porxy_OK yum makecache 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31myum Docker 源更新失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                Rm_Lock
                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在安装 docker,该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK yum install -y docker 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 docker\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 docker 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m正在卸载原有 Docker 环境\033[0m"
                apt-get remove -y docker 1> /dev/null 2>> /tmp/f8x_error.log
                apt-get remove -y docker-engine 1> /dev/null 2>> /tmp/f8x_error.log
                apt-get remove -y docker.io 1> /dev/null 2>> /tmp/f8x_error.log
                Rm_Lock
                apt-get update 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新 apt 软件包列表失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                apt-get install -y apt-transport-https 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 apt-transport-https 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 apt-transport-https 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                apt-get install -y ca-certificates 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ca-certificates 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ca-certificates 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                apt-get install -y curl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 curl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 curl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                apt-get install -y software-properties-common 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 software-properties-common 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 software-properties-common 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                apt-get install -y gnupg 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gnupg 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gnupg 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                $Porxy_OK curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -

                case $Linux_Version in
                    *"Kali"*|*"Debian"*)
                        echo -e 'deb https://download.docker.com/linux/debian' "$Linux_Version_Name" 'stable'> /etc/apt/sources.list.d/docker.list
                        ;;
                    *"Ubuntu"*)
                        echo -e 'deb https://download.docker.com/linux/ubuntu/' "$Linux_Version_Name" 'stable'> /etc/apt/sources.list.d/docker.list
                        ;;
                esac

                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m正在更新 apt 软件包列表\033[0m" && apt-get update 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新 apt 软件包列表失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在安装 docker,该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK apt-get install -y docker-ce 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 docker-ce\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 docker-ce 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                rm -rf /etc/apt/sources.list.d/docker.list 1> /dev/null 2>> /tmp/f8x_error.log
                ;;
            *)
                ;;
        esac

        systemctl start docker 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mdocker 服务已启动\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mdocker 服务启动失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        systemctl enable docker 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mdocker 服务已配置开机自启\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mdocker 服务已配置开机自启失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

    docker-compose -version 1> /dev/null 2>> /tmp/f8x_error.log
    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mdocker-compose 已安装\033[0m"
    else
        pip3_Check
        pip3 install docker-compose 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 docker-compose\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 docker-compose 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

    lazydocker -version 1> /dev/null 2>> /tmp/f8x_error.log
    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mlazydocker 已安装\033[0m"
    else
        ( cd /tmp && $Porxy_OK wget https://raw.githubusercontent.com/jesseduffield/lazydocker/master/scripts/install_update_linux.sh > /dev/null 2>&1 && $Porxy_OK bash install_update_linux.sh > /dev/null 2>&1 ) && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lazydocker,输入 lazydocker 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lazydocker 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 SDKMAN =====================
SDKMAN_Install(){

    sdk version 1> /dev/null 2>> /tmp/f8x_error.log
    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mSDKMAN 已安装\033[0m"
    else
        cd /tmp && $Porxy_OK curl -o sdkman.sh "https://get.sdkman.io" > /dev/null 2>&1 && $Porxy_OK bash sdkman.sh > /dev/null 2>&1
        source "/root/.sdkman/bin/sdkman-init.sh"
        sdk version && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 SDKMAN 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 SDKMAN 工具失败\n\033[0m"
    fi

}

# ===================== 安装 Terraform =====================
Terraform_Install(){

    if test -e /usr/local/bin/terraform
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mterraform 已存在,若非管理员安装,建议追踪 /usr/local/bin/terraform 文件 \033[0m"
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 terraform 安装包"
        cd /tmp && $Porxy_OK wget https://releases.hashicorp.com/terraform/$Terraform_Ver/$Terraform_bin > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已从 hashicorp.com 下载完安装包\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 Terraform 安装包失败! 请检查 proxychains4 配置的代理服务器是否可用!  \n\033[0m"
        unzip $Terraform_bin > /dev/null 2>&1
        mv terraform /usr/local/bin/terraform 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 terraform $Terraform_Ver 工具,输入 terraform 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mTerraform 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 Serverless_Framework =====================
Serverless_Framework_Install(){

    npm config set prefix /usr/local
    $Porxy_OK npm install -g serverless
    serverless -v && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Serverless Framework 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Serverless Framework 工具失败\n\033[0m"

}

# ===================== 安装 wrangler =====================
wrangler_Install(){

    $Porxy_OK cargo install wrangler
    wrangler -V && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 wrangler 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 wrangler 工具失败\n\033[0m"

}

# ===================== 安装 SSH =====================
SSH_Tools(){

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mRedHat 系默认可用,本项 Pass\n\033[0m" ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            Rm_Lock
            apt-get install -y ssh 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ssh 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 SSH 工具失败(Kali 系统下默认安装 SSH,请无视报错)!\n\033[0m"

            echo "PermitRootLogin yes" >> /etc/ssh/sshd_config && echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
            yes|ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key 1> /dev/null 2>> /tmp/f8x_error.log
            yes|ssh-keygen -t dsa -f /etc/ssh/ssh_host_rsa_key 1> /dev/null 2>> /tmp/f8x_error.log
            systemctl start ssh 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mSSH 已初始化完成\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mSSH 初始化失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            systemctl enable ssh 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mSSH 已配置开机自启\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mSSH 配置开机自启失败,请查看日志 /tmp/f8x_error.log \n\033[0m" ;;
        *) ;;
    esac

}

# ===================== 渗透目录检测 =====================
Pentest_Base_Install(){

    if test -d $P_Dir
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m$P_Dir 文件夹已存在\033[0m"
    else
        mkdir -p $P_Dir && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已新建 $P_Dir 文件夹\033[0m"
    fi

}

# ===================== AboutSecurity =====================
Pentest_Dic_Install(){

    if test -d /pentest/AboutSecurity
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mAboutSecurity 字典库已存在\033[0m"
    else
        rm -rf $P_Dir/AboutSecurity && $Porxy_OK git clone https://github.com/ffffffff0x/AboutSecurity.git $P_Dir/AboutSecurity > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 AboutSecurity 字典库在 /pentest \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m从 github 下载 AboutSecurity 字典库失败!\n- 请检查是否安装 git 工具,建议先运行 -b 选项安装基本工具\n- 请检查 proxychains4 配置的代理服务器是否可用! \033[0m"
    fi

}

# ===================== 安装渗透杂项工具 =====================
Pentest_Misc_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y parallel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 parallel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 parallel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y gdb 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gdb 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gdb 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y rlwrap 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 rlwrap 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 rlwrap 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y foremost 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 foremost 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 foremost 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y parallel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 parallel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 parallel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y btscanner 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 btscanner 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 btscanner 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y rarcrack 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 rarcrack 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 rarcrack 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y xdot 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xdot 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xdot 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y gdb 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gdb 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gdb 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y rlwrap 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 rlwrap 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 rlwrap 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

    case $Linux_Version in
        *"Kali"*)
            apt-get install -y owasp-mantra-ff 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 owasp-mantra-ff 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 owasp-mantra-ff 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y powershell 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 powershell 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 powershell 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            $Porxy_OK gem install zsteg 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 zsteg 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m调用 gem 安装 zsteg 工具失败! 请运行 -ruby 选项安装 Ruby 环境\033[0m"
            ;;
        *) ;;
    esac

}

# ===================== 安装渗透 pip 模块 =====================
Pentest_pip_Install(){

    python3 -m pip install --upgrade pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已更新 python3-pip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新 python3-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install PyJWT 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 PyJWT 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 PyJWT 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install pyshark 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pyshark 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pyshark 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install requests 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 requests 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 requests 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install sqlparse 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 sqlparse 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 sqlparse 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install threadpool 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 threadpool 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 threadpool 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install urllib3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 urllib3 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 urllib3 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install lxml 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lxml 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lxml 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install pyzbar 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pyzbar 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pyzbar 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install bs4 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 bs4 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 bs4 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install ftfy 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ftfy 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ftfy 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install updog 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 updog 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 updog 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    pip3 install pefile 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pefile 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pefile 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    python2 -m pip install yara > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 yara 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 yara 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install pycrypto > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pycrypto 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pycrypto 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install openpyxl > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 openpyxl 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 openpyxl 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install ujson > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ujson 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ujson 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install Crypto > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Crypto 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Crypto 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install pycryptodome > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pycryptodome 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pycryptodome 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install pytz > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pytz 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pytz 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install Pillow > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Pillow 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Pillow 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
    python2 -m pip install pefile > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pefile 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pefile 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"

}

# ===================== 安装 hashcat、7z2hashcat 工具 =====================
Pentest_hashcat_Install(){

    if test -d $P_Dir/hashcat-6.1.1
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mhashcat-6.1.1 已下载在 $P_Dir/hashcat-6.1.1\033[0m"
    else
        rm -rf $P_Dir/hashcat-6.1.1* 1> /dev/null 2>> /tmp/f8x_error.log
        $Porxy_OK wget -O $P_Dir/hashcat-6.1.1.7z https://hashcat.net/files/hashcat-6.1.1.7z --no-check-certificate > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 hashcat-6.1.1\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m hashcat-6.1.1 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        rm -rf $P_Dir/7z2hashcat.pl 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK curl -o $P_Dir/7z2hashcat.pl https://raw.githubusercontent.com/philsmd/7z2hashcat/master/7z2hashcat.pl > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 7z2hashcat.pl 在 $P_Dir 目录下 \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m7z2hashcat.pl 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        7za x $P_Dir/hashcat-6.1.1.7z -o$P_Dir 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 $P_Dir/hashcat-6.1.1.7z 失败!\n\033[0m"
        rm -rf $P_Dir/hashcat-6.1.1.7z 1> /dev/null 2>> /tmp/f8x_error.log
        cd $P_Dir/hashcat* 1> /dev/null 2>> /tmp/f8x_error.log && chmod +x hashcat.bin && cp hashcat.bin hashcat
        ln -s /pentest/hashcat-6.1.1/hashcat /usr/sbin/hashcat 1> /dev/null 2>> /tmp/f8x_error.log
        hashcat --help 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 hashcat 在 $P_Dir/hashcat-6.1.1 目录下,直接输入 hashcat 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mhashcat 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 nmap 工具 =====================
Pentest_nmap_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y nmap 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 nmap 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 nmap 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y nmap 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 nmap 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 nmap 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# ===================== 安装 ncat 工具 =====================
Pentest_ncat_Install(){

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m在安装 nmap 时已安装好 ncat\033[0m"
            #Ncat_Version=ncat-7.91-1.x86_64.rpm
            #$Porxy_OK rpm -vhU https://nmap.org/dist/$Ncat_Version 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ncat 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$Ncat_Version 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            Rm_Lock
            apt-get install -y ncat 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ncat 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ncat 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m到这一步若长时间无反应,请手动按一下回车\033[0m"
            update-alternatives --set nc /usr/bin/ncat >/dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已配置默认 nc 为 /usr/bin/ncat\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m设置默认 nc 为 /usr/bin/ncat 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# ===================== 安装 ffuf 工具 =====================
Pentest_ffuf_Install(){

    ffuf -V 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mffuf 已安装 \033[0m"
    else
        cd /tmp && rm -rf $ffuf_Install 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/ffuf/ffuf/releases/download/$ffuf_Ver/$ffuf_Install > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$ffuf_Install 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        tar -zxvf $ffuf_Install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 /tmp/$ffuf_Install 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        mv --force ffuf /usr/local/bin/ && chmod +x /usr/local/bin/ffuf && rm -rf /tmp/$ffuf_Install 1> /dev/null 2>> /tmp/f8x_error.log
        ffuf -V 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ffuf $ffuf_Ver 在 /usr/local/bin/ 目录下,直接输入 ffuf 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mffuf 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 JSFinder 工具 =====================
Pentest_JSFinder_Install(){

    if test -d $P_Dir/JSFinder
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mJSFinder 已下载在 $P_Dir/JSFinder\033[0m"
    else
        cd $P_Dir && rm -rf JSFinder 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/Threezh1/JSFinder.git > /dev/null 2>&1 && cd JSFinder || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mJSFinder 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        python3 JSFinder.py -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 JSFinder 在 $P_Dir/JSFinder 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mJSFinder 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 SecretFinder 工具 =====================
Pentest_SecretFinder_Install(){

    if test -d $P_Dir/SecretFinder
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mSecretFinder 已下载在 $P_Dir/SecretFinder\033[0m"
    else
        cd $P_Dir && rm -rf SecretFinder 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/m4ll0k/SecretFinder.git > /dev/null 2>&1 && cd SecretFinder || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mSecretFinder 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        pip3 install -r requirements.txt 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装依赖模块\033[0m" || ( echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m" && rm -rf $P_Dir/SecretFinder )
        python3 SecretFinder.py -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 SecretFinder 在 $P_Dir/SecretFinder 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mSecretFinder 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 WebAliveScan 工具 =====================
Pentest_WebAliveScan_Install(){

    if test -d $P_Dir/WebAliveScan
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mWebAliveScan 已下载在 $P_Dir/WebAliveScan\033[0m"
    else
        cd $P_Dir && rm -rf WebAliveScan 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/broken5/WebAliveScan.git > /dev/null 2>&1 && cd WebAliveScan || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mWebAliveScan 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        pip3 install -r requirements.txt > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装依赖模块\033[0m" || ( echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m" && rm -rf $P_Dir/WebAliveScan )
        pip3 install gevent > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gevent 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gevent 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        python3 webscan.py --help > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 WebAliveScan 在 $P_Dir/WebAliveScan 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mWebAliveScan 安装失败! \033[0m"
    fi

}

# ===================== 安装 OneForAll 工具 =====================
Pentest_OneForAll_Install(){

    if test -d $P_Dir/OneForAll
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mOneForAll 已下载在 $P_Dir/OneForAll\033[0m"
    else
        python3 -m pip install setuptools 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 setuptools 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 setuptools 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        python3 -m pip install wheel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 wheel 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 wheel 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        cd $P_Dir && rm -rf OneForAll 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/shmilylty/OneForAll > /dev/null 2>&1 && cd OneForAll || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mOneForAll 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在安装依赖模块,该步骤可能运行较长时间,请耐心等待\033[0m" && pip3 install -r requirements.txt 1> /dev/null 2>> /tmp/f8x_error.log || ( echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装其他依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m" && rm -rf $P_Dir/OneForAll )
        python3 oneforall.py version 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 OneForAll 在 $P_Dir/OneForAll 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mOneForAll 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 ksubdomain 工具 =====================
Pentest_ksubdomain_Install(){

    ksubdomain 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mksubdomain 已安装 \033[0m"
    else
        Rm_Lock
        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                yum install -y libpcap 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libpcap 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libpcap 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                yum install -y libpcap-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libpcap-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libpcap-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m" ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                apt-get install -y libpcap-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libpcap-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libpcap-dev 工具失败! 请手动运行 apt-get install -y libpcap-dev 进行安装,此工具是 ksubdomain 必要组件\n\033[0m" ;;
            *) ;;
        esac

        cd $T_Dir && rm -rf $ksubdomain_Install 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf ksubdomain 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/knownsec/ksubdomain/releases/download/$ksubdomain_Ver/$ksubdomain_Install > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$ksubdomain_Install 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        unzip $ksubdomain_Install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 $T_Dir/$ksubdomain_Install 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        mv --force ksubdomain /usr/local/bin/ && chmod +x /usr/local/bin/ksubdomain && rm -rf ${T_Dir:?}/${ksubdomain_Install} 1> /dev/null 2>> /tmp/f8x_error.log

        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                    if test -e /usr/lib64/libpcap.so.0.8
                    then
                        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mlibpcap.so.0.8 文件已存在\033[0m"
                    else
                        cd /usr/lib64/ && ln -s libpcap.so.1 libpcap.so.0.8 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已配置 libpcap.so.0.8\033[0m"
                    fi
                ;;
            *) ;;
        esac

        ksubdomain > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ksubdomain $ksubdomain_Ver 在 /usr/local/bin/ 目录下,直接输入 ksubdomain 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mksubdomain 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 Impacket 工具 =====================
Pentest_Impacket_Install(){

    if test -d $P_Dir/impacket
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mImpacket 已下载在 $P_Dir/impacket\033[0m"
    else
        rm -rf $P_Dir/impacket 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/SecureAuthCorp/impacket.git $P_Dir/impacket > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 impacket 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mimpacket 工具下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        cd $P_Dir/impacket && pip3 install . > /dev/null 2>&1
        python3 setup.py install 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Impacket 在 $P_Dir/impacket 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Impacket 工具失败,请查看日志 /tmp/f8x_error.log \033[0m"
    fi

}

# ===================== 部署 CobaltStrike 环境 =====================
Pentest_CobaltStrike_Install(){

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在检测 jdk 环境可用性\033[0m"
    java -version > /dev/null 2>&1

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mjdk 环境正常\033[0m"
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m未检测到 jdk 环境,正在自动安装 oracle-jdk\033[0m"
        Oraclejdk_Install
    fi

    if test -d $P_Dir/$CS_Version
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m$CS_Version 已部署在 $P_Dir/$CS_Version\033[0m"
    else
        cd $P_Dir && rm -rf $CS_File 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/CS/$CS_File > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$CS_File 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        rm -rf $CS_Version 1> /dev/null 2>> /tmp/f8x_error.log && unzip $CS_File 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf $CS_File
        cd $P_Dir/$CS_Version && chmod +x teamserver 1> /dev/null 2>> /tmp/f8x_error.log
        rm -rf cobaltstrike.store 1> /dev/null 2>> /tmp/f8x_error.log

        /usr/local/java/$jdk_Version/bin/keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias aliyun -dname "CN=aliyun, OU=aliyun, O=aliyun, L=aliyun, S=aliyun, C=aliyun"  1> /dev/null 2>> /tmp/f8x_error.log || keytool -keystore ./cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias aliyun -dname "CN=aliyun, OU=aliyun, O=aliyun, L=aliyun, S=aliyun, C=aliyun"  1> /dev/null 2>> /tmp/f8x_error.log
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已将 $CS_Version 部署在 $P_Dir/$CS_Version 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 CobaltStrike 环境失败,请查看日志 /tmp/f8x_error.log \033[0m"
    fi

    if test -e $P_Dir/$CS_Version/genCrossC2.Linux
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mgenCrossC2.Linux 文件已存在 \033[0m"
    else
        cd $P_Dir/$CS_Version 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/gloxec/CrossC2/releases/download/$CrossC2_Ver/genCrossC2.Linux > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 CrossC2 工具至 $P_Dir/$CS_Version/genCrossC2.Linux \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 CrossC2 工具失败! \033[0m"
        chmod +x genCrossC2.Linux 1> /dev/null 2>> /tmp/f8x_error.log
    fi

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mCrossC2 命令:\n\033[0m\033[1;32mcd $P_Dir/$CS_Version/ && ./genCrossC2.Linux <IP> <port> ./.cobaltstrike.beacon_keys null Linux x64 <filename> \n\033[0m"

    if test -e $P_Dir/$CS_Version/cobaltstrike.store
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcobaltstrike.store 文件已生成,默认 keypass 为 123456,实战中强烈建议替换!!! \033[0m"
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m运行 keytool 失败,此步骤需要 jdk 环境,请使用 -oraclejdk 选项安装 jdk 环境,然后运行以下命令\n/usr/local/java/$jdk_Version/bin/keytool -keystore $P_Dir/$CS_Version/cobaltstrike.store -storepass 123456 -keypass 123456 -genkey -keyalg RSA -alias aliyun -dname \"CN=aliyun, OU=aliyun, O=aliyun, L=aliyun, S=aliyun, C=aliyun\"\n手动生成 cobaltstrike.store 文件!\n\033[0m"
    fi

}

# ===================== 部署 Metasploit 框架 =====================
Pentest_Metasploit_Install(){

    msfconsole -h 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mMetasploit 已安装 \033[0m"
    else
        Rm_Lock
        cd /tmp && rm -rf msfinstall 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK curl -o msfinstall https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb 1> /dev/null 2>> /tmp/f8x_error.log && chmod 777 msfinstall
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在部署 Metasploit 框架,该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK ./msfinstall 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Metasploit 框架,输入 msfconsole 进行体验\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 Metasploit 框架失败!\033[0m"
        rm -rf msfinstall 1> /dev/null 2>> /tmp/f8x_error.log
    fi

}

# ===================== 安装 Sqlmap 工具 =====================
Pentest_Sqlmap_Install(){

    if test -d $P_Dir/sqlmap
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mSqlmap 已下载在 $P_Dir/sqlmap\033[0m"
    else
        cd $P_Dir && rm -rf sqlmap* 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 Sqlmap 工具(~70M),该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK git clone https://github.com/sqlmapproject/sqlmap > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 sqlmap 失败! 请检查 proxychains4 配置的代理服务器是否可用! \033[0m"
        cd sqlmap && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Sqlmap$(python3 sqlmap.py --version) 在 $P_Dir/sqlmap 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Sqlmap 工具失败,请查看日志 /tmp/f8x_error.log \033[0m"
    fi

}

# ===================== 安装 RustScan 工具 =====================
Pentest_RustScan_Install(){

    rustscan -V 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mRustScan 已安装 \033[0m"
    else

        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                rm -rf /var/cache/dnf/metadata_lock.pid  2> /dev/null
                $Porxy_OK dnf install -y 'dnf-command(copr)' 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK dnf copr enable atim/rustscan -y 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK dnf install -y rustscan 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 RustScan 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 RustScan 工具失败! 请检查是否安装 dnf!请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m" ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                cd $T_Dir && rm -rf $RustScan_Install 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/RustScan/RustScan/releases/download/$RustScan_Version/$RustScan_Install > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mRustScan 失败!\n- 请检查 proxychains4 配置的代理服务器是否可用! \033[0m"
                dpkg -i $RustScan_Install 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 RustScan 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 RustScan 工具失败! 在部分 debian 系列发行版上可能遇到 libc6 问题, 请自行解决\033[0m"
                rm -rf $RustScan_Install 1> /dev/null 2>> /tmp/f8x_error.log
                ;;
            *) ;;
        esac

    fi

}

# ===================== 安装 WAFW00F 工具 =====================
Pentest_WAFW00F_Install(){

    wafw00f -V 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mWAFW00F 已安装 \033[0m"
    else
        cd $P_Dir && rm -rf wafw00f* 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 WAFW00F 工具\033[0m" && $Porxy_OK git clone https://github.com/EnableSecurity/wafw00f > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m WAFW00F 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \033[0m"
        cd wafw00f && python3 setup.py install > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 WAFW00F 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 WAFW00F 工具失败,请查看日志 /tmp/f8x_error.log \033[0m"
    fi

}

# ===================== 安装 xray 工具 =====================
Pentest_xray_Install(){

    if test -d $P_Dir/xray
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mxray 已下载在 $P_Dir/xray\033[0m"
    else
        cd $P_Dir && rm -rf xray* 1> /dev/null 2>> /tmp/f8x_error.log
        mkdir xray && cd $_ && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 xray 工具\033[0m" && $Porxy_OK wget https://github.com/chaitin/xray/releases/download/$xray_Ver/$xray_File > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mxray 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \033[0m"
        unzip $xray_File 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf $xray_File && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xray$xray_Ver 在 $P_Dir/xray 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xray 工具失败,请查看日志 /tmp/f8x_error.log \033[0m"
    fi

}

# ===================== 安装 masscan 工具 =====================
Pentest_masscan_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y masscan 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 masscan 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 masscan 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y masscan 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 masscan 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 masscan 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# ===================== 安装 fscan 工具 =====================
Pentest_fscan_Install(){

    fscan 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mfscan 已安装 \033[0m"
    else
        cd /tmp && rm -rf $fscan_Install 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/shadow1ng/fscan/releases/download/$fscan_Ver/$fscan_Install > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mfscan 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        mv $fscan_Install fscan && mv --force fscan /usr/local/bin/ && chmod +x /usr/local/bin/fscan
        fscan > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 fscan $fscan_Ver 在 /usr/local/bin/ 目录下,直接输入 fscan 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mfscan 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 pocsuite3 工具 =====================
Pentest_pocsuite3_Install(){

    pip3 install pocsuite3 > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pocsuite3 工具,直接输入 pocsuite 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pocsuite3 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# ===================== 安装 Nuclei 工具 =====================
Pentest_Nuclei_Install(){

    nuclei -version 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mNuclei 已安装\033[0m"
    else
        cd /tmp && rm -rf $Nuclei_Install 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/projectdiscovery/nuclei/releases/download/$Nuclei_Ver/$Nuclei_Install > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$Nuclei_Install 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        tar -zxvf $Nuclei_Install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 /tmp/$Nuclei_Install 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        mv --force nuclei /usr/local/bin/ && chmod +x /usr/local/bin/nuclei && rm -rf /tmp/$Nuclei_Install 1> /dev/null 2>> /tmp/f8x_error.log
        nuclei -version > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Nuclei $Nuclei_Ver 在 /usr/local/bin/ 目录下,直接输入 nuclei 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mnuclei 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

        echo -e "\033[1;33m\n>> 正在更新 Nuclei 扫描规则\n\033[0m"
        cd $P_Dir && $Porxy_OK nuclei -update-templates > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已更新 nuclei-templates 列表 \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mnuclei-templates 列表更新失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 rad 工具 =====================
Pentest_rad_Install(){

    rad -h 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mrad 已安装\033[0m"
    else
        cd /tmp && rm -rf $rad_File 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/chaitin/rad/releases/download/$rad_Ver/$rad_File > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$rad_File 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        unzip $rad_File 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 /tmp/$rad_File 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        mv rad_linux_amd64 rad
        mv --force rad /usr/local/bin/ && chmod +x /usr/local/bin/rad && rm -rf /tmp/$rad_File 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 rad $rad_Ver 在 /usr/local/bin/ 目录下,直接输入 rad 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mrad 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[INFOR]\033[0m - \033[1;33mrad 需配合 chromium 使用,可使用 -chromium 选项安装 chromium \033[0m"
    fi

}

# ===================== 安装 crawlergo 工具 =====================
Pentest_crawlergo_Install(){

    crawlergo -v 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mcrawlergo 已安装\033[0m"
    else
        cd /tmp && rm -rf $crawlergo_File 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/0Kee-Team/crawlergo/releases/download/$crawlergo_Ver/$crawlergo_File > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$crawlergo_File 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        unzip $crawlergo_File 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 /tmp/$crawlergo_File 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        mv --force crawlergo /usr/local/bin/ && chmod +x /usr/local/bin/crawlergo && rm -rf /tmp/$crawlergo_File 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 crawlergo $crawlergo_Ver 在 /usr/local/bin/ 目录下,直接输入 crawlergo 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mcrawlergo 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[INFOR]\033[0m - \033[1;33mrad 需配合 chromium 使用,可使用 -chromium 选项安装 chromium \033[0m"
    fi

}

# ===================== 安装 w13scan 工具 =====================
Pentest_w13scan_Install(){

    if test -d $P_Dir/w13scan
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mw13scan 已下载在 $P_Dir/w13sca\033[0m"
    else
        rm -rf $P_Dir/w13scan 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/w-digital-scanner/w13scan.git $P_Dir/w13scan > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 w13scan 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mw13scan 工具下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        cd $P_Dir/w13scan && pip3 install -r requirements.txt > /dev/null 2>&1
        pip3 install cowpy > /dev/null 2>&1
        cd W13SCAN && python3 w13scan.py -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 w13scan 在 $P_Dir/w13scan 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 w13scan 工具失败,请查看日志 /tmp/f8x_error.log \033[0m"
    fi

}

# ===================== 安装 Responder 工具 =====================
Pentest_Responder_Install(){

    if test -d $P_Dir/Responder
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mResponder 已下载在 $P_Dir/Responder\033[0m"
    else
        cd $P_Dir && rm -rf Responder 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/lgandx/Responder.git > /dev/null 2>&1 && cd Responder || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mResponder 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        python3 Responder.py -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Responder 在 $P_Dir/Responder 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mResponder 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

    if test -d $P_Dir/krbrelayx
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mkrbrelayx 已下载在 $P_Dir/krbrelayx\033[0m"
    else
        cd $P_Dir && rm -rf krbrelayx 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/dirkjanm/krbrelayx.git > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 krbrelayx 在 $P_Dir/krbrelayx 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mkrbrelayx 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
    fi

}

# ===================== 安装 Girsh 工具 =====================
Pentest_Girsh_Install(){

    Girsh -h 1> /dev/null 2>> /tmp/f8x_error.log

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mGirsh 已安装 \033[0m"
    else
        cd /tmp && rm -rf $Girsh_bin 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/nodauf/Girsh/releases/download/$Girsh_Ver/$Girsh_bin > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$Girsh_bin 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        tar -zxvf $Girsh_bin 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 /tmp/$Girsh_bin 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        mv --force Girsh /usr/local/bin/ && chmod +x /usr/local/bin/Girsh && rm -rf /tmp/$Girsh_bin 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Girsh $Girsh_Ver 在 /usr/local/bin/ 目录下,直接输入 Girsh 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mGirsh 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 ApkAnalyser 工具 =====================
Pentest_ApkAnalyser_Install(){

    if test -e $P_Dir/apkAnalyser.py
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mApkAnalyser 已下载在 $P_Dir/ \033[0m"
    else

        cd $P_Dir && rm -rf krbrelayx 1> /dev/null 2>> /tmp/f8x_error.log && curl -o apkAnalyser.py https://cdn.jsdelivr.net/gh/TheKingOfDuck/ApkAnalyser@main/apkAnalyser.py > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ApkAnalyser 在 $P_Dir/ 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mApkAnalyser 下载失败! 请检查 proxychains4 配置的代理服务器是否可用!\n\033[0m"
    fi

}

# ===================== 安装 unyaffs 工具 =====================
unyaffs_Install(){

    cd $T_Dir && rm -rf unyaffs 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://storage.googleapis.com/google-code-archive-downloads/v2/code.google.com/unyaffs/unyaffs > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31munyaffs 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
    mv --force unyaffs /usr/local/bin/ && chmod +x /usr/local/bin/unyaffs && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 unyaffs 在 /usr/local/bin/ 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31munyaffs 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# ===================== 安装 Fail2Ban 工具 =====================
Secure_Fail2Ban_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y fail2ban 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 fail2ban 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 fail2ban 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            systemctl restart fail2ban 1> /dev/null 2>> /tmp/f8x_error.log && sleep 1
            echo -e "fail2ban-client ping" 1> /dev/null 2>> /tmp/f8x_error.log && sleep 1 && fail2ban-client ping
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y fail2ban 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 fail2ban 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 fail2ban 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            systemctl restart fail2ban 1> /dev/null 2>> /tmp/f8x_error.log && sleep 1
            echo -e "fail2ban-client ping" 1> /dev/null 2>> /tmp/f8x_error.log && sleep 1 && fail2ban-client ping
            ;;
        *) ;;
    esac

}

# ===================== 安装 chkrootkit 工具 =====================
Secure_chkrootkit_Install(){

    if test -d $T_Dir/chkrootkit-*
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mchkrootkit 已下载在 $T_Dir/\033[0m"
    else
        cd $T_Dir && rm -rf chkrootkit.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 chkrootkit 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mchkrootkit 工具下载失败! \n\033[0m"
        tar zxvf chkrootkit.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf chkrootkit.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log
        cd chkrootkit-* && make sense 1> /dev/null 2>> /tmp/f8x_error.log
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 chkrootkit 工具在 $T_Dir 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 chkrootkit 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 rkhunter 工具 =====================
Secure_rkhunter_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y rkhunter 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 rkhunter 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 rkhunter 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y rkhunter 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 rkhunter 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 rkhunter 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# ===================== 安装 shellpub 工具 =====================
Secure_shellpub_Install(){

    if test -d $T_Dir/hm
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m河马 webshell 查杀工具已下载在 $T_Dir/hm\033[0m"
    else
        cd $T_Dir && rm -rf $T_Dir/hm && mkdir $T_Dir/hm && cd $_ && $Porxy_OK wget -O hm-linux.tgz http://dl.shellpub.com/hm/latest/hm-linux-amd64.tgz?version=1.8.2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载河马 webshell 查杀工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m河马 webshell 查杀工具下载失败! \n\033[0m"
        tar zxvf hm-linux.tgz 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf hm-linux.tgz 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装河马 webshell 查杀工具在 $T_Dir/hm 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装河马 webshell 查杀工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 anti-portscan 工具 =====================
Secure_anti_portscan_Install(){

    if test -d $T_Dir/anti-portscan
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33manti-portscan 已下载在 $T_Dir/anti-portscan\033[0m"
    else
        cd $T_Dir && rm -rf anti-portscan 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/EtherDream/anti-portscan.git > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 anti-portscan 在 $T_Dir/anti-portscan 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31manti-portscan 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
    fi

}

# ===================== 安装 Bash_Insulter =====================
Bash_Insulter(){

    if test -e /etc/bash.command-not-found
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mBash_Insulter 已安装在 /etc/bash.command-not-found\033[0m"
    else
        rm -rf $T_Dir/bash-insulter 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/No-Github/bash-insulter.git $T_Dir/bash-insulter 1> /dev/null 2>> /tmp/f8x_error.log|| echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        mv --force $T_Dir/bash-insulter/src/bash.command-not-found /etc/ && rm -rf $T_Dir/bash-insulter
        chmod 777 /etc/bash.command-not-found && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m最纯粹的嘴臭,最极致的享受,当你重启机器后,输错命令会有惊喜\033[0m"

        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                echo ". /etc/bash.command-not-found" >> /etc/bashrc
                ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                echo ". /etc/bash.command-not-found" >> /etc/bash.bashrc
                ;;
            *) ;;
        esac
    fi

}

# ===================== 安装 vlmcsd 环境 =====================
vlmcsd_Install(){

    if test -d $T_Dir/vlmcsd
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mvlmcsd 已安装在 $T_Dir/vlmcsd\033[0m"
    else
        cd $T_Dir && rm -rf binaries.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf vlmcsd 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/Wind4/vlmcsd/releases/download/svn1113/binaries.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mvlmcsd 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        tar -xzvf binaries.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log
        mv binaries vlmcsd
        rm -rf binaries.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mvlmcsd 已安装在 $T_Dir/vlmcsd 下,可通过以下命令运行 vlmcsd 服务:\ncd $T_Dir/vlmcsd/Linux/intel/static && ./vlmcsd-x86-musl-static\033[0m"
    fi

}

# ===================== 安装 AdguardTeam 环境 =====================
AdguardTeam_Install(){

    if test -d $T_Dir/AdGuardHome
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mAdguardTeam 已部署在 $T_Dir/AdGuardHome\033[0m"
    else
        cd $T_Dir && rm -rf $AdguardTeam_File && $Porxy_OK wget https://github.com/AdguardTeam/AdGuardHome/releases/download/v0.105.0-beta.2/$AdguardTeam_File 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mAdguardTeam 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        tar -xzvf $AdguardTeam_File 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf $AdguardTeam_File
        cd AdGuardHome && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 AdguardTeam $AdGuardHome_Version 环境,运行以下命令开启 AdguardTeam 服务\n\033[0m\033[1;32mcd $T_Dir/AdGuardHome && ./AdGuardHome -s install\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 AdguardTeam 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# ===================== 安装 trash-cli 环境 =====================
trash-cli_Install(){

    pip3_Check

    pip3 install trash-cli 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 trash-cli 环境,现在可使用以下命令进行管理:\n- 移动文件到回收站 : trash-put\n- 列出回收站文件 : trash-list\n- 搜索回收站文件 : trash-list | grep foo\n- 恢复回收站文件 : trash-restore\n- 删除所有回收站文件 : trash-empty\n- 删除回收站中 n 天前被回收的文件 : trash-empty <days>\n- 只删除符合某种模式的文件 : trash-rm \\\*.o\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 trash-cli 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# ===================== 安装 thefuck 环境 =====================
thefuck_Install(){

    pip3_Check

    pip3 install thefuck 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 thefuck \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 thefuck 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -vol
Volatility_Install(){

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y pcre-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pcre-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pcre-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libpcre++-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libpcre++-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libpcre++-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y python-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y pycrypto 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pycrypto 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pycrypto 工具失败!(在 Centos 下会有谜之报错,请手动尝试 yum install -y pycrypto 进行安装)\n\033[0m" ;;
        *) ;;
    esac

    python2 -m pip install distorm3==3.4.4 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 distorm3 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 distorm3 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    python2 -m pip install yara-python 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 yara-python 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 yara-python 模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    ln -s /usr/local/lib/python2.7/dist-packages/usr/lib/libyara.so /usr/lib/libyara.so 1> /dev/null 2>> /tmp/f8x_error.log

    case $Linux_Version in
        *"Ubuntu"*|*"Debian"*)
            echo -e "\033[1;33m\n>> 正在安装 volatility 工具,请耐心等待 \n\033[0m"
            apt-get install -y volatility 1> /dev/null 2>> /tmp/f8x_error.log && volatility --info 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Volatility,直接输入 Volatility 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 volatility 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m" ;;
        *)
            if test -d $P_Dir/volatility
            then
                echo -e "\033[1;33m\n>> $P_Dir/Volatility 文件夹已存在,是否覆盖 [y/N,默认No]\n\033[0m" && read -r input
                case $input in
                    [yY][eE][sS]|[Yy])
                        echo -e "\033[1;33m\n>> 正在安装 volatility 工具,请耐心等待 \n\033[0m"
                        rm -rf $P_Dir/volatility
                        $Porxy_OK git clone https://github.com/volatilityfoundation/volatility.git $P_Dir/volatility 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 volatility\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mvolatility 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                        cd $P_Dir/volatility && python setup.py build 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                        python setup.py install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                        python vol.py --info 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Volatility 在 $P_Dir/volatility 路径\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Volatility 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                        ;;
                    *)
                        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mPass~\n\033[0m" ;;
                esac
            else
                echo -e "\033[1;33m\n>> 正在安装 volatility 工具,请耐心等待 \n\033[0m"
                $Porxy_OK git clone https://github.com/volatilityfoundation/volatility.git $P_Dir/volatility 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 volatility\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mvolatility 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                cd $P_Dir/volatility && python setup.py build 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                python setup.py install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                python vol.py --info 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 Volatility 在 $P_Dir/volatility 路径\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Volatility 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            fi
            ;;
    esac

}

# -vol3
volatility3_Install(){

    Rm_Lock

    if test -d $P_Dir/volatility3
    then
        echo -e "\033[1;33m\n>> $P_Dir/volatility3 文件夹已存在,是否覆盖 [y/N,默认No]\n\033[0m" && read -r input
        case $input in
            [yY][eE][sS]|[Yy])
                echo -e "\033[1;33m\n>> 正在安装 volatility 工具,请耐心等待 \n\033[0m"
                rm -rf $P_Dir/volatility3
                $Porxy_OK git clone https://github.com/volatilityfoundation/volatility3.git $P_Dir/volatility3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 volatility3\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mvolatility3 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                cd $P_Dir/volatility3 && python3 setup.py build 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                python3 setup.py install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                python3 vol.py -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 volatility3 在 $P_Dir/volatility3 路径\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Volatility 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                ;;
            *)
                echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mPass~\033[0m" ;;
        esac
    else
        echo -e "\033[1;33m\n>> 正在安装 volatility3 工具,请耐心等待 \n\033[0m"
        $Porxy_OK git clone https://github.com/volatilityfoundation/volatility3.git $P_Dir/volatility3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 volatility3\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mvolatility3 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        cd $P_Dir/volatility3 && python3 setup.py build 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        python3 setup.py install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装依赖模块失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        python3 vol.py -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 volatility3 在 $P_Dir/volatility3 路径\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Volatility3 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

    if test -d $P_Dir/volatility3/symbols
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m$P_Dir/volatility3/symbols 文件夹已存在\033[0m"
    else
        echo -e "\033[1;33m\n>> 正在下载 Symbol Tables ,请耐心等待 \n\033[0m"
        cd /tmp && $Porxy_OK wget downloads.volatilityfoundation.org/volatility3/symbols/windows.zip > /dev/null 2>&1
        $Porxy_OK wget downloads.volatilityfoundation.org/volatility3/symbols/mac.zip > /dev/null 2>&1
        $Porxy_OK wget downloads.volatilityfoundation.org/volatility3/symbols/linux.zip > /dev/null 2>&1
        mkdir -p $P_Dir/volatility3/symbols
        mv /tmp/windows.zip $P_Dir/volatility3/symbols && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 windows Symbol Tables 在 $P_Dir/volatility3/symbols \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mwindows Symbol Tables 下载失败! \n\033[0m"
        mv /tmp/mac.zip $P_Dir/volatility3/symbols && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 mac Symbol Tables 在 $P_Dir/volatility3/symbols \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mwindows Symbol Tables 下载失败! \n\033[0m"
        mv /tmp/linux.zip $P_Dir/volatility3/symbols && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 linux Symbol Tables 在 $P_Dir/volatility3/symbols \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mwindows Symbol Tables 下载失败! \n\033[0m"
    fi

}

# -hfish
hfish_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 hfish 环境\n\033[0m"
    docker pull imdevops/hfish && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已拉取最新版 hfish 镜像, 请通过下列命令运行:\ndocker run -d --name hfish -p 21:21 -p 2222:22 -p 23:23 -p 69:69 -p 3306:3306 -p 5900:5900 -p 6379:6379 -p 8080:8080 -p 8081:8081 -p 8989:8989 -p 9000:9000 -p 9001:9001 -p 9200:9200 -p 11211:11211 -e USERNAME=ffff1234SFG -e PASSWORD=ffff1234SFG --restart=always imdevops/hfish:latest\n\n-browser access：http://[IP_Address]:9001/\n-环境变量API_IP的值为 API 的 IP 地址加端口组成\n-默认帐号密码均为：ffff1234SFG 如需修改可以通过修改 -e USERNAME= -e PASSWORD= 环境变量进行修改\n-如需做数据持久化存储，可加参数 -v \$PWD:/opt 挂载数据卷到宿主机上，避免容器删除数据丢失\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 hfish 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -lt
lt_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 LogonTracer 环境\n\033[0m"
    docker pull jpcertcc/docker-logontracer && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已拉取最新版 LogonTracer 镜像, 请通过下列命令运行:\ndocker run --name logontracer --detach -p 7474:7474 -p 7687:7687 -p 8080:8080 -e LTHOSTNAME=[IP_Address] jpcertcc/docker-logontracer\n\n-browser access：http://[IP_Address]:8080/\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 LogonTracer 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -binwalk
binwalk_Install(){

    echo -e "\033[1;33m\n>> 正在安装 binwalk 工具及相关组件\n\033[0m"
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mRedHat 系不建议安装,本项 Pass\n\033[0m" ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在安装 binwalk,该步骤可能运行很长时间,请看部电影\033[0m"
            cd $T_Dir && rm -rf binwalk 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/ReFirmLabs/binwalk.git 1> /dev/null 2>> /tmp/f8x_error.log && cd binwalk 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mbinwalk 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
            $Porxy_OK sudo ./deps.sh && python setup.py uninstall && python setup.py install
            binwalk -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 binwalk\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mbinwalk 安装失败!建议使用 -binwalk-force 进行强制安装\n\033[0m"
            echo -e "\033[1;33m\n>> 正在安装 unyaffs 工具\n\033[0m"
            unyaffs_Install
            ;;
        *) ;;
    esac

}

# -binwalk-force
binwalk_force_Install(){

    echo -e "\033[1;33m\n>> 正在安装 binwalk 工具及相关组件\n\033[0m"
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mRedHat 系不建议安装,本项 Pass\n\033[0m" ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            Rm_Lock
            apt-get install -y python3-pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-pip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python-lzma 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python-lzma 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python-lzma 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-crypto 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-crypto 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-crypto 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y libqt4-opengl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libqt4-opengl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libqt4-opengl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-opengl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-opengl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-opengl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-pyqt4 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-pyqt4 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-pyqt4 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-pyqt4.qtopengl 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-pyqt4.qtopengl 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-pyqt4.qtopengl 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-numpy 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-numpy 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-numpy 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-scipy 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-scipy 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-scipy 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python3-pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python3-pip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python3-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y mtd-utils 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 mtd-utils 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 mtd-utils 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y gzip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gzip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gzip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y bzip2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 bzip2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 bzip2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y tar 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 tar 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 tar 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y arj 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 arj 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 arj 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y lhasa 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lhasa 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lhasa 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y p7zip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 p7zip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 p7zip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y p7zip-full 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 p7zip-full 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 p7zip-full 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y cabextract 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 cabextract 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 cabextract 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y cramfsprogs 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 cramfsprogs 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 cramfsprogs 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y cramfsswap 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 cramfsswap 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 cramfsswap 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y squashfs-tools 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 squashfs-tools 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 squashfs-tools 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y sleuthkit 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 sleuthkit 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 sleuthkit 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y default-jdk 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 default-jdk 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 default-jdk 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y lzop 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 lzop 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 lzop 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y srecord 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 srecord 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 srecord 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y zlib1g-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 zlib1g-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 zlib1g-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y liblzma-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 liblzma-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 liblzma-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y liblzo2-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 liblzo2-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 liblzo2-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python-lzo 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python-lzo 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python-lzo 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            pip install cstruct 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 cstruct 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 cstruct 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            pip3 install nose 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 nose 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 nose 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            pip3 install coverage 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 coverage 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 coverage 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            pip3 install pyqtgraph 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pyqtgraph 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pyqtgraph 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            pip3 install capstone 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 capstone 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 capstone 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

            # sasquatch
            echo -e "\033[1;33m\n>> 正在安装 sasquatch 工具\n\033[0m"
            cd $T_Dir && rm -rf sasquatch 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/devttys0/sasquatch 1> /dev/null 2>> /tmp/f8x_error.log && cd sasquatch 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31msasquatch 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
            $Porxy_OK ./build.sh 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 sasquatch\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31msasquatch 安装失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"

            # jefferson
            echo -e "\033[1;33m\n>> 正在安装 jefferson 工具\n\033[0m"
            cd $T_Dir && rm -rf jefferson 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/sviehb/jefferson 1> /dev/null 2>> /tmp/f8x_error.log && cd jefferson 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mjefferson 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
            $Porxy_OK python setup.py install 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 jefferson\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mjefferson 安装失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"

            # ubi_reader
            echo -e "\033[1;33m\n>> 正在安装 ubi_reader 工具\n\033[0m"
            cd $T_Dir && rm -rf ubi_reader 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/jrspruitt/ubi_reader 1> /dev/null 2>> /tmp/f8x_error.log && cd ubi_reader 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mubi_reader 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
            $Porxy_OK python setup.py install 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ubi_reader\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mubi_reader 安装失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"

            # yaffshiv
            echo -e "\033[1;33m\n>> 正在安装 yaffshiv 工具\n\033[0m"
            cd $T_Dir && rm -rf yaffshiv 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/devttys0/yaffshiv 1> /dev/null 2>> /tmp/f8x_error.log && cd yaffshiv 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31myaffshiv 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
            $Porxy_OK python setup.py install 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 yaffshiv\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31myaffshiv 安装失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"

            # unstuff
            echo -e "\033[1;33m\n>> 正在安装 unstuff 工具\n\033[0m"
            cd $T_Dir && $Porxy_OK curl -o - http://downloads.tuxfamily.org/sdtraces/stuffit520.611linux-i386.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log | tar -zxv 1> /dev/null 2>> /tmp/f8x_error.log
            mv --force bin/unstuff /usr/local/bin/ && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 unstuff\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31munstuff 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

            # unyaffs
            echo -e "\033[1;33m\n>> 正在安装 unyaffs 工具\n\033[0m"
            unyaffs_Install

            # binwalk
            echo -e "\033[1;33m\n>> 正在安装 binwalk,耐心等待\n\033[0m"
            cd $T_Dir && rm -rf binwalk 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/ReFirmLabs/binwalk 1> /dev/null 2>> /tmp/f8x_error.log && cd binwalk 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mbinwalk 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"

            python3 setup.py install 1> /dev/null 2>> /tmp/f8x_error.log

            binwalk -h 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 binwalk\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mbinwalk 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# -clamav
clamav_Install(){

    echo -e "\033[1;33m\n>> 正在安装 clamav\n\033[0m"

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y clamav 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 clamav 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 clamav 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y clamav-update 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 clamav-update 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 clamav-update 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            $Porxy_OK freshclam
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y clamav 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 clamav 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 clamav 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            systemctl stop clamav-freshclam.service
            $Porxy_OK freshclam -v
            ;;
        *) ;;
    esac

}

# -python2
Python2_Install(){

    echo -e "\033[1;33m\n>> 正在安装 python2\n\033[0m"

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*)

            ( (python -h 1> /dev/null 2>> /tmp/f8x_error.log || python2 -h 1> /dev/null 2>> /tmp/f8x_error.log) && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python2 工具\033[0m" ) || ( ( (yum install -y python 1> /dev/null 2>> /tmp/f8x_error.log || yum install -y python2 1> /dev/null 2>> /tmp/f8x_error.log) && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python2 工具\033[0m") || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python 工具失败! 请尽量手动安装,否则会出现大量依赖问题!\n\033[0m")

            ( yum install -y python-devel 1> /dev/null 2>> /tmp/f8x_error.log || yum install -y python2-devel 1> /dev/null 2>> /tmp/f8x_error.log) && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ( yum install -y python2-pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python2-pip 工具\033[0m" ) || ( echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python2-pip 工具失败! 即将自动运行 -pip2-force 选项安装 python2-pip 环境\033[0m" && pip2_Install )
            ;;
        *"Fedora"*)
            yum install -y python 1> /dev/null 2>> /tmp/f8x_error.log
            yum install -y python2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python 工具失败! 请尽量手动安装,否则会出现大量依赖问题!\n\033[0m"
            yum install -y python-devel 1> /dev/null 2>> /tmp/f8x_error.log
            yum install -y python2-devel 1> /dev/null 2>> /tmp/f8x_error.log
            ( yum install -y python2-pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python2-pip 工具\033[0m" ) || ( echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python2-pip 工具失败! 即将自动运行 -pip2-force 选项安装 python2-pip 环境\033[0m" && pip2_Install )
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y python 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y python-dev 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python-dev 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python-dev 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ( apt-get install -y python-pip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python2-pip 工具\033[0m" ) || ( echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python2-pip 工具失败! 即将自动运行 -pip2-force 选项安装 python2-pip 环境\033[0m" && pip2_Install )
            python2 -m pip install setuptools > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 setuptools 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 setuptools 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"
            ;;
        *) ;;
    esac

}

# -pip2-force
pip2_Install(){

    echo -e "\033[1;33m\n>> 正在安装 pip2\n\033[0m"
    cd $T_Dir && $Porxy_OK curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m https://bootstrap.pypa.io/get-pip.py 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
    $Porxy_OK python2 get-pip.py 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 python-pip 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 python-pip 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    rm -rf get-pip.py 1> /dev/null 2>> /tmp/f8x_error.log
    python2 -m pip install setuptools > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 setuptools 模块\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 setuptools 模块失败! 请尝试更换 pip 代理或检查 python2 是否已安装! \n\033[0m"

}

# -ruby
Ruby_Install(){

    echo -e "\033[1;33m\n>> 正在安装 Ruby,时间超长,建议看会视频,耐心等待(编译过程中出现 warning 告警请无视)\n\033[0m"
    cd $T_Dir && rm -rf $Ruby_Install 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://cache.ruby-lang.org/pub/ruby/$Ruby_Ver/ruby-3.0.0.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$Ruby_Install 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
    tar xvfvz $Ruby_Install 1> /dev/null 2>> /tmp/f8x_error.log
    cd $Ruby_Dir && ./configure 1> /dev/null 2>> /tmp/f8x_error.log && make 1> /dev/null 2>> /tmp/f8x_error.log && make install 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 $(ruby -v) 安装在 /usr/local/bin/ 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 Ruby 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -rust
Rust_Install(){

    echo -e "\033[1;33m\n>> 正在安装 rust(注意安装时选项)\n\033[0m"
    $Porxy_OK curl https://sh.rustup.rs -sSf | $Porxy_OK sh

}

# -chromium
chromium_Install(){

    echo -e "\033[1;33m\n>> 正在安装大量依赖库,时间较长,请耐心等待\n\033[0m"

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y pango.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 pango.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 pango.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXcomposite.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXcomposite.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXcomposite.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXcursor.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXcursor.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXcursor.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXdamage.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXdamage.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXdamage.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXext.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXext.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXext.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXi.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXi.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXi.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXtst.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXtst.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXtst.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y cups-libs.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 cups-libs.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 cups-libs.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXScrnSaver.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXScrnSaver.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXScrnSaver.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libXrandr.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXrandr.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXrandr.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y libX11-xcb.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libX11-xcb.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libX11-xcb.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y GConf2.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 GConf2.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 GConf2.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y alsa-lib.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 alsa-lib.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 alsa-lib.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y atk.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 atk.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 atk.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y gtk3.x86_64 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 gtk3.x86_64 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 gtk3.x86_64 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y ipa-gothic-fonts 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 ipa-gothic-fonts 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 ipa-gothic-fonts 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y xorg-x11-fonts-100dpi 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xorg-x11-fonts-100dpi 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xorg-x11-fonts-100dpi 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y xorg-x11-fonts-75dpi 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xorg-x11-fonts-75dpi 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xorg-x11-fonts-75dpi 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y xorg-x11-utils 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xorg-x11-utils 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xorg-x11-utils 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y xorg-x11-fonts-cyrillic 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xorg-x11-fonts-cyrillic 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xorg-x11-fonts-cyrillic 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y xorg-x11-fonts-Type1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xorg-x11-fonts-Type1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xorg-x11-fonts-Type1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y xorg-x11-fonts-misc 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 xorg-x11-fonts-misc 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 xorg-x11-fonts-misc 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -yq --no-install-recommends libasound2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libasound2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libasound2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libatk1.0-0 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libatk1.0-0 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libatk1.0-0 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libc6 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libc6 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libc6 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libcairo2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libcairo2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libcairo2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libcups2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libcups2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libcups2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libdbus-1-3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libdbus-1-3 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libdbus-1-3 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libexpat1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libexpat1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libexpat1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libfontconfig1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libfontconfig1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libfontconfig1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libgcc1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libgcc1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libgcc1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libgconf-2-4 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libgconf-2-4 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libgconf-2-4 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libgdk-pixbuf2.0-0 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libgdk-pixbuf2.0-0 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libgdk-pixbuf2.0-0 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libglib2.0-0 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libglib2.0-0 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libglib2.0-0 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libgtk-3-0 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libgtk-3-0 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libgtk-3-0 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libnspr4 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libnspr4 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libnspr4 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libpango-1.0-0 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libpango-1.0-0 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libpango-1.0-0 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libpangocairo-1.0-0 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libpangocairo-1.0-0 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libpangocairo-1.0-0 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libstdc++6 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libstdc++6 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libstdc++6 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libx11-6 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libx11-6 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libx11-6 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libx11-xcb1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libx11-xcb1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libx11-xcb1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxcb1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxcb1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxcb1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxcursor1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxcursor1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxcursor1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxdamage1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxdamage1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxdamage1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxext6 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxext6 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxext6 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxfixes3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxfixes3 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxfixes3 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxi6 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxi6 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxi6 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxrandr2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxrandr2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxrandr2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxrender1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxrender1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxrender1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxss1 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxss1 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxss1 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libxtst6 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libxtst6 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libxtst6 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -yq --no-install-recommends libnss3 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libnss3 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libnss3 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

    echo -e "\033[1;33m\n>> 正在安装 chromium(~120M)\n\033[0m"

    cd $T_Dir && rm -rf chrome-linux* 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://storage.googleapis.com/chromium-browser-snapshots/Linux_x64/706915/chrome-linux.zip 1> /dev/null 2>> /tmp/f8x_error.log

    unzip chrome-linux.zip 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 chromium 环境在 $T_Dir/chrome-linux \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 chromium 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    rm -rf chrome-linux.zip 1> /dev/null 2>> /tmp/f8x_error.log

}

# -openjdk
Openjdk_Install(){

    java -version 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java 环境\033[0m" && exit 1

    echo -e "\033[1;33m\n>> 正在安装 Java 环境\n\033[0m"

    Rm_Lock
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            yum install -y java-1.8.0-openjdk 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java-1.8.0-openjdk 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 java-1.8.0-openjdk 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            yum install -y java-1.8.0-openjdk-devel 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java-1.8.0-openjdk-devel 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 java-1.8.0-openjdk-devel 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            java -version && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java 环境\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 java 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            apt-get install -y openjdk-11-jdk 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 openjdk-11-jdk 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 openjdk-11-jdk 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            java -version && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java 环境\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 java 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# -oraclejdk
Oraclejdk_Install(){

    java -version > /dev/null 2>&1

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java 环境\033[0m"
    else
        echo -e "\033[1;33m\n>> 正在安装 Java 环境\n\033[0m"
        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                cd $T_Dir && rm -rf targz.z* 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.z01 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.z01 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.z02 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.z02 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.z03 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.z03 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.zip 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.zip 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                rm -rf jdk* 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf myzip.zip 1> /dev/null 2>> /tmp/f8x_error.log
                cat targz.z* > myzip.zip && unzip myzip.zip 1> /dev/null 2>> /tmp/f8x_error.log
                tar -xzvf jdk-8u271-linux-x64.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log
                rm -rf /usr/local/java/ 1> /dev/null 2>> /tmp/f8x_error.log && mkdir /usr/local/java/
                mv $jdk_Version/ /usr/local/java
                echo "JAVA_HOME=/usr/local/java/$jdk_Version" >> /etc/bashrc
                echo "JRE_HOME=\$JAVA_HOME/jre" >> /etc/bashrc
                echo "CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib" >> /etc/bashrc
                echo "PATH=\$PATH:\$JAVA_HOME/bin" >> /etc/bashrc
                ln -s /usr/local/java/$jdk_Version/bin/java /usr/bin/java 1> /dev/null 2>> /tmp/f8x_error.log
                ln -s /usr/local/java/$jdk_Version/bin/keytool /usr/bin/keytool 1> /dev/null 2>> /tmp/f8x_error.log
                /usr/bin/java -version && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java 环境,环境变量可能需要重新进入 bash 才能生效\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 java 环境失败!(在 Redhat 系下会有误报,请手动执行 java -version 看下,珍爱生命,远离 Redhat 系!环境变量需要重新进入 bash 才能生效或手动执行下列命令生效\nexport JAVA_HOME=/usr/local/java/$jdk_Version\nexport JRE_HOME=\$JAVA_HOME/jre\nexport CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib\nexport PATH=\$JAVA_HOME/bin:\$PATH)\n\033[0m"
                rm -rf targz.z* 1> /dev/null 2>> /tmp/f8x_error.log
                rm -rf jdk-8u271-linux-x64.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log
                rm -rf myzip.zip 1> /dev/null 2>> /tmp/f8x_error.log
                ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                cd $T_Dir && rm -rf targz.z* 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.z01 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.z01 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.z02 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.z02 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.z03 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.z03 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                $Porxy_OK wget https://raw.githubusercontent.com/No-Github/Archive/master/JDK/targz/targz.zip 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 targz.zip 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
                rm -rf jdk* 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf myzip.zip 1> /dev/null 2>> /tmp/f8x_error.log
                cat targz.z* > myzip.zip && unzip myzip.zip 1> /dev/null 2>> /tmp/f8x_error.log
                tar -xzvf jdk-8u271-linux-x64.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log
                rm -rf /usr/local/java/ 1> /dev/null 2>> /tmp/f8x_error.log && mkdir /usr/local/java/
                mv $jdk_Version/ /usr/local/java
                echo "JAVA_HOME=/usr/local/java/$jdk_Version " >> /etc/bash.bashrc
                echo "JRE_HOME=\$JAVA_HOME/jre " >> /etc/bash.bashrc
                echo "CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib " >> /etc/bash.bashrc
                echo "PATH=\$JAVA_HOME/bin:\$PATH " >> /etc/bash.bashrc
                ln -s /usr/local/java/$jdk_Version/bin/java /usr/bin/java 1> /dev/null 2>> /tmp/f8x_error.log
                /usr/bin/java -version && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 java 环境,环境变量需要重新进入 bash 才能生效或手动执行下列命令生效\nexport JAVA_HOME=/usr/local/java/$jdk_Version\nexport JRE_HOME=\$JAVA_HOME/jre\nexport CLASSPATH=.:\$JAVA_HOME/lib:\$JRE_HOME/lib\nexport PATH=\$JAVA_HOME/bin:\$PATH\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 java 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                rm -rf targz.z* 1> /dev/null 2>> /tmp/f8x_error.log
                rm -rf jdk-8u271-linux-x64.tar.gz 1> /dev/null 2>> /tmp/f8x_error.log
                rm -rf myzip.zip 1> /dev/null 2>> /tmp/f8x_error.log
                ;;
            *) ;;
        esac
    fi

}

# -perl
Perl_Install(){

    echo -e "\033[1;33m\n>> 正在安装 perl(注意安装时选项,安装时若长时间无反应请按几下回车,并且在安装完毕后需手动 exit 退出)\n\033[0m" && cd $T_Dir && $Porxy_OK sh <(curl -q https://platform.activestate.com/dl/cli/install.sh) --activate-default ActiveState/ActivePerl-5.28

}

# -nn
nn_Install(){

    echo -e "\033[1;33m\n>> 正在安装 nodejs && npm\n\033[0m"

    if test -e /usr/local/bin/node
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33mnodejs && npm 已存在,若非管理员安装,建议追踪 /usr/local/bin/node 文件 \033[0m"
    else
        cd /tmp && $Porxy_OK wget https://nodejs.org/dist/$node_Ver/$node_bin > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已下载 $node_bin \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$node_bin 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        mkdir /usr/local/nodejs/ && tar -C /usr/local/nodejs -xvJf $node_bin > /dev/null 2>&1 && rm $node_bin
        ln -s /usr/local/nodejs/$node_Dir/bin/node /usr/local/bin/node && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 nodejs 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 nodejs 工具失败!\n\033[0m"
        ln -s /usr/local/nodejs/$node_Dir/bin/npm /usr/local/bin/npm && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 npm 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 npm 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# -vulhub
vulhub_Install(){

    Pentest_Base_Install

    echo -e "\033[1;33m\n>> 正在部署 vulhub 环境\n\033[0m"

    cd $P_Dir && rm -rf vulhub 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 vulhub 环境,该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK git clone https://github.com/vulhub/vulhub 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m下载 vulhub 失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
    cd vulhub && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已部署最新版 vulhub 在 $P_Dir/vulhub 目录下\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 vulhub 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -vulfocus
vulfocus_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 vulfocus 环境\n\033[0m"
    docker pull vulfocus/vulfocus:latest && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已拉取最新版 vulfocus 请通过下列命令运行:\ndocker run -d -p 80:80 -v /var/run/docker.sock:/var/run/docker.sock  -e VUL_IP=xxx.xxx.xxx.xxx vulfocus/vulfocus\n\n-v /var/run/docker.sock:/var/run/docker.sock 为 docker 交互连接。\n-e DOCKER_URL 为 Docker 连接方式，默认通过 unix://var/run/docker.sock 进行连接，也可以通过 tcp://xxx.xxx.xxx.xxx:2375 进行连接（必须开放 2375 端口）。\n-v /vulfocus-api/db.sqlite3:db.sqlite3 映射数据库为本地文件。\n-e VUL_IP=xxx.xxx.xxx.xxx 为 Docker 服务器 IP ，不能为 127.0.0.1。\n默认账户密码为 admin/admin。\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 vulfocus 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -goby
Goby_Install(){

    echo -e "\033[1;33m\n>> 正在部署 Goby 环境\n\033[0m"

    if test -d $P_Dir/goby
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mGoby 已部署在 $P_Dir/goby下,直接输入 cd $P_Dir/goby/goby* && ./goby 即可使用\033[0m"
    else

        Rm_Lock
        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                yum install -y libXScrnSaver* 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libXScrnSaver 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libXScrnSaver 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                apt-get install -y libgconf2 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 libgconf2 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 libgconf2 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                ;;
            *) ;;
        esac

        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 Goby 安装包(~120M),该步骤可能运行较长时间,请耐心等待\033[0m"
        cd $P_Dir && mkdir -p $P_Dir/goby 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/gobysec/Goby/releases/download/$goby_Ver/$goby_File > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$goby_File 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        unzip $goby_File -d $P_Dir/goby 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf $goby_File && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已部署 Goby $goby_Ver 在 $P_Dir/goby 目录下,直接输入 cd $P_Dir/goby/goby* && ./goby 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mgoby 部署失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# -awvs13
awvs13_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 awvs13 环境\n\033[0m"
    docker pull secfa/docker-awvs && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已拉取最新版 awvs13 镜像, 请通过下列命令运行:\ndocker run -it -d -p 13443:3443 secfa/docker-awvs\n\n-awvs13 username: admin@admin.com\n-awvs13 password: Admin123\n-AWVS Version：13.0.200217097\n-browser access：https://127.0.0.1:13443/\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 awvs13 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -mobsf
mobsf_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 MobSF 环境\n\033[0m"
    docker pull opensecurity/mobile-security-framework-mobsf && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已拉取最新版 MobSF 镜像, 请通过下列命令运行:\n$Porxy_OK docker run -it --rm -p 8000:8000 opensecurity/mobile-security-framework-mobsf:latest\n\n-browser access：http://127.0.0.1:8000/\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 MobSF 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -nodejsscan
nodejsscan_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 nodejsscan 环境\n\033[0m"
    docker pull opensecurity/nodejsscan:latest && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已拉取最新版 nodejsscan 镜像, 请通过下列命令运行:\ndocker run -it -p 9090:9090 opensecurity/nodejsscan:latest\n\n-browser access：http://127.0.0.1:9090/\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 nodejsscan 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -viper
viper_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 Viper 环境\033[0m"

    mkdir -p /root/viper && cd /root/viper && rm -rf docker-compose.* 1> /dev/null 2>> /tmp/f8x_error.log

    viper_conf 1> /dev/null 2>> /tmp/f8x_error.log

    echo -e "\033[5;33m\n请输入 Viper 密码(密码需要大于8位)\033[0m" && read -r input
    Viper_Pass=$input
    cat docker-compose.yml.bak | sed "s/diypassword/$Viper_Pass/" >> docker-compose.yml
    cd /root/viper && docker-compose up -d

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m等待系统启动(15s),访问 https://vpsip:60000 登录服务器. 用户名:root 密码:$Viper_Pass \033[0m"

}

viper_conf(){

tee docker-compose.yml.bak <<-'EOF'
version: "3"
services:
  viper:
    image: registry.cn-shenzhen.aliyuncs.com/toys/viper:latest
    container_name: viper-c
    network_mode: "host"
    restart: always
    volumes:
      - /root/viper/loot:/root/.msf4/loot
      - /root/viper/db:/root/viper/Docker/db
      - /root/viper/module:/root/viper/Docker/module
      - /root/viper/log:/root/viper/Docker/log
    command: ["diypassword"]
EOF

}

# -arl
arl_Install(){

    echo -e "\033[1;33m\n>> 正在检测 Docker 可用性\n\033[0m"
    Docker_Install

    echo -e "\033[1;33m\n>> 正在部署 ARL 环境\n\033[0m"
    docker pull tophant/arl && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已拉取最新版 ARL 镜像 \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 ARL 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

    cd $P_Dir && rm -rf ARL 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/TophantTechnology/ARL 1> /dev/null 2>> /tmp/f8x_error.log
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m输入 cd $P_Dir/ARL/docker/ && docker-compose up -d 启动, 默认端口 5003, 默认用户名密码 admin/arlpass\033[0m"

}

# -music
music_Install(){

    nn_Check

    echo -e "\033[1;33m\n>> 正在部署 UnblockNeteaseMusic 服务\n\033[0m"
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在安装 npx 模块\033[0m" && $Porxy_OK npm install npx -g 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mnpx 模块安装完毕\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mnpx 模块安装失败\n\033[0m"
    cd $T_Dir && rm -rf UnblockNeteaseMusic 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK git clone https://github.com/nondanee/UnblockNeteaseMusic 1> /dev/null 2>> /tmp/f8x_error.log
    cd UnblockNeteaseMusic && $Porxy_OK npm install && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;33m部署完毕,运行以下命令开启服务:\n\033[0m\033[1;32mcd $T_Dir/UnblockNeteaseMusic && npx @nondanee/unblockneteasemusic\n\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署失败\n\033[0m"

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m若无法正常访问,请检查服务器防火墙设置\033[0m"
}

# -bypass
bypass_Install(){

    echo -e "\033[1;33m\n>> 正在检测 go 可用性\n\033[0m"
    go version 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mgo 可用\033[0m" || ( echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m依赖项不通过,即将自动安装 go\033[0m" && Go_Install )

    Pentest_Base_Install

    echo -e "\033[1;33m\n>> 正在安装 garble\n\033[0m"
    go env -w GO111MODULE=on
    go get mvdan.cc/garble 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 garble 在 $P_Dir/garble \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 garble 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

    echo -e "\033[1;33m\n>> 正在安装 intensio-obfuscator\n\033[0m"
    python3 -m pip install intensio-obfuscator 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 intensio-obfuscator \033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 intensio-obfuscator 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"

}

# -cs
cs_Install(){

    Pentest_Base_Install

    echo -e "\033[1;33m\n>> 正在部署 CobaltStrike 4.1 环境\n\033[0m"
    Pentest_CobaltStrike_Install
    echo -e "\033[5;33m\n请输入你的 teamserver 服务端 IP\033[0m" && read -r input
    CS_IP=$input
    echo -e "\033[5;33m\n请输入你的 teamserver 服务端密码(特殊字符请在前面加反斜杠 \"\\\" 转义)\033[0m" && read -r input
    CS_Pass=$input
    echo -e "\033[1;36m\n$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m请新建一个窗口会话,运行以下命令:\n\033[0m\033[1;32mcd $P_Dir/$CS_Version/ && nohup ./teamserver $CS_IP $CS_Pass & \033[0m"

}

# -frp
frp_Install(){

    echo -e "\033[1;33m\n>> 正在部署 frp 环境\n\033[0m"
    cd $T_Dir && rm -rf frp* 1> /dev/null 2>> /tmp/f8x_error.log && $Porxy_OK wget https://github.com/fatedier/frp/releases/download/$frp_Version/$frp_File > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$frp_File 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
    tar -zxvf $frp_File > /dev/null 2>&1 && rm -rf $frp_File > /dev/null 2>&1
    cd $frp_Dir && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mfrp 已部署在 $T_Dir/$frp_Dir\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mfrp 部署失败\n\033[0m"

}

# -nps
nps_Install(){

    echo -e "\033[1;33m\n>> 正在部署 nps 环境\n\033[0m"

    if test -d $T_Dir/nps
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mnps 已部署在 $T_Dir/nps\033[0m"
    else
        mkdir -p $T_Dir/nps
        cd $T_Dir/nps && $Porxy_OK wget https://github.com/ehang-io/nps/releases/download/$nps_Ver/$nps_Install > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$nps_Install 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        tar -zxvf $nps_Install 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m解压 $T_Dir/$nps_Install 失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
        rm -rf $T_Dir/nps/$nps_Install > /dev/null 2>&1 && chmod +x $T_Dir/nps/nps && $T_Dir/nps/nps install > /dev/null 2>&1
        $T_Dir/nps/nps -version 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 nps $nps_Ver 在 $T_Dir/nps 目录下,直接输入 $T_Dir/nps/nps 即可使用\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mnps 安装失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# -suricata
suricata_Install(){

    echo -e "\033[1;33m\n>> 正在部署 suricata 环境\n\033[0m"

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m目前脚本仅支持 Debian 系安装 suricata,bye bye~\n\033[0m"
            exit 1
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            Rm_Lock
            add-apt-repository ppa:oisf/suricata-stable
            apt-get install -y jq 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 jq 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 jq 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y suricata 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 suricata 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 suricata 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            apt-get install -y suricata-update 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 suricata-update 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 suricata-update 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            suricata-update && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已更新规则\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新规则失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
            ;;
        *) ;;
    esac

}

# -ssr
ssr_Install(){

    echo -e "\033[1;33m\n>> 正在部署 ssr 工具\n\033[0m"
    cd $T_Dir && rm -rf shadowsocksr* 1> /dev/null 2>> /tmp/f8x_error.log && wget https://cdn.jsdelivr.net/gh/No-Github/Archive@1.0.3/ssr/ssr.zip 1> /dev/null 2>> /tmp/f8x_error.log
    unzip -P 123456 ssr.zip 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf ssr.zip 1> /dev/null 2>> /tmp/f8x_error.log
    cd shadowsocksr && bash initcfg.sh && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已部署 ssr 工具\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m部署 ssr 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;33m运行下列命令修改 ssr 配置:\n\033[0m\033[1;32mvim $T_Dir/shadowsocksr/user-config.json\n\033[0m"
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;33m运行下列命令开启 ssr 服务:\n\033[0m\033[1;32mcd $T_Dir/shadowsocksr/shadowsocks/ && python local.py\033[0m"

}

# -optimize
optimize_setting(){

    echo -e "\033[1;33m\n>> 正在同步\n\033[0m"
    sync && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32msync\033[0m"
    echo -e "\033[1;33m\n>> 正在释放缓存\n\033[0m"
    echo 1 > /proc/sys/vm/drop_caches && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已清理 pagecache(页面缓存)\033[0m"
    echo 2 > /proc/sys/vm/drop_caches && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已清理 dentries(目录缓存)和inodes\033[0m"
    echo 3 > /proc/sys/vm/drop_caches && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已清理 pagecache、dentries 和 inodes\033[0m"
    sync
    echo -e "\033[1;33m\n>> 正在取消开启文件数限制\n\033[0m"
    ulimit -n 65535 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mulimit -n 65535\033[0m"
    echo -e "\033[1;33m\n>> 正在优化内存设置\n\033[0m"
    echo 128 > /proc/sys/vm/nr_hugepages 1> /dev/null 2>> /tmp/f8x_error.log
    sysctl -w vm.nr_hugepages=128 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mvm.nr_hugepages=128\033[0m"

}

# -info
System_info(){

    rm -rf /tmp/f8x_info.log

    date +"%Y-%m-%d" > /tmp/f8x_info.log

    echo -e "\033[1;33m\n>> 当前系统使用状态\n\033[0m"

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前用户: \033[0m"
    w

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前系统管理员用户: \033[0m"
    awk -F: '($3 == "0") {print}' /etc/passwd

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m近几次登陆情况: \033[0m"
    last

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前内核版本: \033[0m"
    uname -r

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前 CPU 型号: \033[0m"
    cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前 CPU 使用情况: \033[0m"
    uptime

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前 CPU 核数: \033[0m"
    cat /proc/cpuinfo | grep 'processor' | sort | uniq | wc -l

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前内存使用情况: \033[0m"
    free -h

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前 IP 地址: \033[0m"
    ip addr | grep inet | grep -v "inet6" | grep -v "127.0.0.1" | awk '{ print $2; }' | tr '\n' '\t'

    echo -e "\n\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前 TCP 连接: \033[0m"
    cat  /proc/net/tcp | wc -l

    echo -e "\n\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m磁盘空间利用率: \033[0m"
    df -h

    echo -e "\n\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m可用块设备信息: \033[0m"
    lsblk

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前 swap 分区使用情况: (为空则代表没有配置 swap 分区) \033[0m"
    swapon -s 2>> /tmp/f8x_error.log

    echo -e "\n\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m挂载状态: \033[0m"
    more /etc/fstab  | grep -v "^#" | grep -v "^$"

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m路由转发状态: \033[0m"
    ip_forward=$(more /proc/sys/net/ipv4/ip_forward | awk -F: '{if ($1==1) print "1"}')
    if [ -n "$ip_forward" ]; then
        echo "已开启路由转发"
    else
        echo "未开启路由转发"
    fi

    echo -e "\033[1;33m\n>> 身份认证信息\n\033[0m"

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m系统所有用户: \033[0m"
    echo -e "\n\n\n>> 系统所有用户: " >> /tmp/f8x_info.log
    cut -d: -f1 /etc/passwd >> /tmp/f8x_info.log && echo -e "由于回显较多,已输出至 /tmp/f8x_info.log"

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m系统超级用户: \033[0m"
    grep -v -E "^#" /etc/passwd | awk -F: '$3 == 0 { print $1}'

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m可以远程登录的帐号信息: \033[0m"
    awk '/\$1|\$6/{print $1}' /etc/shadow

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m系统所有组: \033[0m"
    echo -e "\n\n\n>> 系统所有组: " >> /tmp/f8x_info.log
    cut -d: -f1,2,3 /etc/group >> /tmp/f8x_info.log && echo -e "由于回显较多,已输出至 /tmp/f8x_info.log"

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前用户的计划任务: \033[0m"
    crontab -l

    echo -e "\033[1;33m\n>> 安全信息\n\033[0m"

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m检查所有的 rpm 软件包，查看哪些命令被替换了: \033[0m"
    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            rpm -Va
            ;;
        *) ;;
    esac

    echo -e "\n\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m系统所有别名: \033[0m"
    echo -e "\n\n\n>> 系统所有别名: " >> /tmp/f8x_info.log
    alias -p >> /tmp/f8x_info.log && echo -e "由于无法回显,已输出至 /tmp/f8x_info.log"

}

# -clear
clear_log(){

    echo -e "\033[1;33m\n>> 正在清理系统使用痕迹\n\033[0m"
    cat /dev/null > /var/log/boot.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/boot.log\033[0m"
    cat /dev/null > /var/log/btmp && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/btmp\033[0m"
    cat /dev/null > /var/log/cron && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/cron\033[0m"
    cat /dev/null > /var/log/dmesg && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/dmesg\033[0m"
    cat /dev/null > /var/log/firewalld && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/firewalld\033[0m"
    cat /dev/null > /var/log/grubby && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/grubby\033[0m"
    cat /dev/null > /var/log/lastlog && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/lastlog\033[0m"
    cat /dev/null > /var/log/mail.info && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/mail.info\033[0m"
    cat /dev/null > /var/log/maillog && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/maillog\033[0m"
    cat /dev/null > /var/log/messages && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/messages\033[0m"
    cat /dev/null > /var/log/secure && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/secure\033[0m"
    cat /dev/null > /var/log/spooler && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/spooler\033[0m"
    cat /dev/null > /var/log/syslog && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/syslog\033[0m"
    cat /dev/null > /var/log/tallylog && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/tallylog\033[0m"
    cat /dev/null > /var/log/wpa_supplicant.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/wpa_supplicant.log\033[0m"
    cat /dev/null > /var/log/wtmp && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/wtmp\033[0m"
    cat /dev/null > /var/log/yum.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mcat /dev/null > /var/log/yum.log\033[0m"
    history -c
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m清理完毕\033[0m"

}

# -remove
remove_watcher(){

    echo -e "\033[1;33m\n>> 正在卸载国内 vps 云监控\n\033[0m"

    if ps aux | grep -i '[a]liyun'
    then
        wget http://update.aegis.aliyun.com/download/uninstall.sh && chmod +x uninstall.sh && ./uninstall.sh
        wget http://update.aegis.aliyun.com/download/quartz_uninstall.sh && chmod +x quartz_uninstall.sh && ./quartz_uninstall.sh

        # 删除残留
        sudo pkill aliyun-service
        sudo rm -fr /etc/init.d/agentwatch /usr/sbin/aliyun-service
        sudo rm -rf /usr/local/aegis*
        systemctl stop aliyun.service
        systemctl disable aliyun.service

        # 屏蔽云盾 IP，用包过滤屏蔽如下 IP
        iptables -I INPUT -s 140.205.201.0/28 -j DROP
        iptables -I INPUT -s 140.205.201.16/29 -j DROP
        iptables -I INPUT -s 140.205.201.32/28 -j DROP
        iptables -I INPUT -s 140.205.225.192/29 -j DROP
        iptables -I INPUT -s 140.205.225.200/30 -j DROP
        iptables -I INPUT -s 140.205.225.184/29 -j DROP
        iptables -I INPUT -s 140.205.225.183/32 -j DROP
        iptables -I INPUT -s 140.205.225.206/32 -j DROP
        iptables -I INPUT -s 140.205.225.205/32 -j DROP
        service iptables save
        service iptables restart

        # 卸载云监控 Java 版本插件
        sudo /usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh stop
        sudo /usr/local/cloudmonitor/wrapper/bin/cloudmonitor.sh remove
        sudo rm -rf /usr/local/cloudmonitor
    elif ps aux | grep -i '[y]unjing'
    then
        /usr/local/qcloud/stargate/admin/uninstall.sh
        /usr/local/qcloud/YunJing/uninst.sh
        /usr/local/qcloud/monitor/barad/admin/uninstall.sh
    fi

    rm -rf /usr/local/qcloud/
    rm -rf /usr/local/sa/
    rm -rf /usr/local/agenttools

    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m卸载完毕\n\033[0m"

}

# -swap
swap_setting(){

    echo -e "\033[1;33m\n>> 正在进行 swap 分区配置\n\033[0m"
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前 swap 分区使用情况如下: (为空则代表没有配置 swap 分区) \033[0m"
    swapon -s 2>> /tmp/f8x_error.log

    if test -e /home/f8xswap
    then
        echo -e "\033[1;36m\n$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m/home/f8xswap 文件已存在\033[0m"
        exit 1
    fi

    echo -e "\033[5;33m\n请输入 swap 分区的大小(单位为G) [默认为 4G]\033[0m" && read -r input

    VALID_CHECK=$(echo "$input"|awk -F. '$1>0&&$1<=254{print "yes"}')
    if [ "${VALID_CHECK:-no}" == "yes" ]; then
        echo -e "\033[1;32m\n>> ${input}G\033[0m"
        swap_bin=`expr ${input} \* 1024`
    else
        echo -e "\033[1;32m\n>> 将使用默认大小\033[0m"
        swap_bin="4096"
    fi

    echo -e "\033[1;33m\n>> 正在创建 swap 文件,时间随大小而定,稍等\n\033[0m"
    dd if=/dev/zero of=/home/f8xswap bs=1M count=$swap_bin && echo -e "\033[1;36m\n$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已创建 swap 文件在 /home/f8xswap\033[0m"
    mkswap /home/f8xswap 1> /dev/null
    swapon /home/f8xswap 1> /dev/null && echo -e "\033[1;36m\n$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已挂载文件分区 /home/f8xswap\033[0m"
    echo -e "\n/home/f8xswap swap swap default 0 0" >> /etc/fstab
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m当前swap 分区使用情况如下: (为空则代表没有配置 swap 分区) \033[0m"
    swapon -s 2>> /tmp/f8x_error.log

}

# -sharry
sharry_Install(){

    echo -e "\033[1;33m\n>> 正在部署 sharry 文件服务\n\033[0m"

    if test -d $T_Dir/sharry
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32msharry 已部署在 $T_Dir/sharry\033[0m"
    else
        cd $T_Dir/ && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;33m[ALERT]\033[0m - \033[1;33m正在下载 sharry 安装包(~70M),该步骤可能运行较长时间,请耐心等待\033[0m" && $Porxy_OK wget https://github.com/eikek/sharry/releases/download/release%2F1.6.0/sharry-restserver-1.6.0.zip > /dev/null 2>&1 || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m$sharry_File 下载失败! 请检查 proxychains4 配置的代理服务器是否可用! \n\033[0m"
        unzip $sharry_File 1> /dev/null 2>> /tmp/f8x_error.log && rm -rf $sharry_File && mv sharry-restserver-1.6.0 sharry && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 sharry 服务,运行以下命令开启服务:\n$T_Dir/sharry/bin/sharry-restserver ,该服务需要 jdk 环境,若未安装可运行 -oraclejdk 选项进行安装\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m安装 sharry 环境失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
    fi

}

# -asciinema
asciinema_Install(){

    echo -e "\033[1;33m\n>> 正在安装 asciinema 截图工具\n\033[0m"
    pip3 install asciinema 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 asciinema 工具,运行以下命令开启截图:\nasciinema rec\033[0m"

    if [ $? == 0 ]
    then
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mover~\033[0m"
    else
        echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31mpip3 安装 asciinema 失败,即将切换到包管理器安装\n\033[0m"
        Rm_Lock
        case $Linux_Version in
            *"CentOS"*|*"RedHat"*|*"Fedora"*)
                yum install -y asciinema 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 asciinema 工具,运行以下命令开启截图:\nasciinema rec\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m使用包管理器安装 asciinema 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                ;;
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                apt-get install -y asciinema 1> /dev/null 2>> /tmp/f8x_error.log && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已安装 asciinema 工具,运行以下命令开启截图:\nasciinema rec\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m使用包管理器安装 asciinema 工具失败,请查看日志 /tmp/f8x_error.log \n\033[0m"
                ;;
            *) ;;
        esac
    fi

}

# -bt
bt_Install(){

    echo -e "\033[1;33m\n>> 正在部署宝塔 Linux 面板\n\033[0m"

    case $Linux_Version in
        *"CentOS"*|*"RedHat"*|*"Fedora"*)
            cd /tmp && curl -o install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh
            ;;
        *"Kali"*|*"Ubuntu"*|*"Debian"*)
            cd /tmp && curl -o install.sh http://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh
            ;;
        *) ;;
    esac

}

# -all
all_Install(){

    Base_Install

    optimize_setting

    Dev_Tools

    Oraclejdk_Install

    nn_Install

    kali_Tools

    frp_Install

    nps_Install

    sharry_Install

}

# -d
Dev_Tools(){

    Dev_Base_Install
    echo -e "\033[1;33m\n>> 正在安装 python3 和 pip3\n\033[0m"
    Python3_Install
    Python2_Install
    echo -e "\033[1;33m\n>> 正在安装 Go\n\033[0m"
    Go_Install
    echo -e "\033[1;33m\n>> 正在安装 Docker 和 Docker-compose\n\033[0m"
    Docker_Install
    echo -e "\033[1;33m\n>> 正在安装 SDKMAN!\n\033[0m"
    SDKMAN_Install

}

# -f
Fun_Tools(){

    echo -e "\033[1;33m\n>> 正在开启嘴臭功能\n\033[0m"
    Bash_Insulter
    echo -e "\033[1;33m\n>> 正在躲避微软法务部追杀\n\033[0m"
    vlmcsd_Install
    echo -e "\033[1;33m\n>> 正在部署 AdguardTeam DNS 服务\n\033[0m"
    AdguardTeam_Install
    echo -e "\033[1;33m\n>> 正在部署 trash-cli 服务\n\033[0m"
    trash-cli_Install
    echo -e "\033[1;33m\n>> 正在安装 thefuck\n\033[0m"
    thefuck_Install

}

# -k
kali_Tools(){

    echo -e "\033[1;33m\n>> 正在配置渗透环境\n\033[0m"
    Pentest_Base_Install
    echo -e "\033[1;33m\n>> 正在从 github 下载 AboutSecurity 字典库 \n\033[0m"
    Pentest_Dic_Install
    echo -e "\033[1;33m\n>> 正在安装一些杂项工具\n\033[0m"
    Pentest_Misc_Install
    echo -e "\033[1;33m\n>> 正在安装一些 python 模块\n\033[0m"
    Pentest_pip_Install
    echo -e "\033[1;33m\n>> 正在安装 hashcat、7z2hashcat 工具\n\033[0m"
    Pentest_hashcat_Install
    echo -e "\033[1;33m\n>> 正在安装 nmap 工具\n\033[0m"
    Pentest_nmap_Install
    echo -e "\033[1;33m\n>> 正在安装 ncat 工具\n\033[0m"
    Pentest_ncat_Install
    echo -e "\033[1;33m\n>> 正在安装 ffuf 工具\n\033[0m"
    Pentest_ffuf_Install
    echo -e "\033[1;33m\n>> 正在安装 JSFinder 工具\n\033[0m"
    Pentest_JSFinder_Install
    echo -e "\033[1;33m\n>> 正在安装 SecretFinder 工具\n\033[0m"
    Pentest_SecretFinder_Install
    #echo -e "\033[1;33m\n>> 正在安装 WebAliveScan 工具\n\033[0m"
    #Pentest_WebAliveScan_Install
    echo -e "\033[1;33m\n>> 正在安装 OneForAll 工具\n\033[0m"
    Pentest_OneForAll_Install
    echo -e "\033[1;33m\n>> 正在安装 ksubdomain 工具\n\033[0m"
    Pentest_ksubdomain_Install
    echo -e "\033[1;33m\n>> 正在安装 impacket 工具\n\033[0m"
    Pentest_Impacket_Install
    echo -e "\033[1;33m\n>> 正在部署 CobaltStrike 工具\n\033[0m"
    Pentest_CobaltStrike_Install
    echo -e "\033[1;33m\n>> 正在部署/更新 Metasploit 框架\n\033[0m"
    Pentest_Metasploit_Install
    echo -e "\033[1;33m\n>> 正在安装 Sqlmap 工具\n\033[0m"
    Pentest_Sqlmap_Install
    echo -e "\033[1;33m\n>> 正在安装 RustScan 工具\n\033[0m"
    Pentest_RustScan_Install
    echo -e "\033[1;33m\n>> 正在安装 WAFW00F 工具\n\033[0m"
    Pentest_WAFW00F_Install
    echo -e "\033[1;33m\n>> 正在安装 xray 工具\n\033[0m"
    Pentest_xray_Install
    echo -e "\033[1;33m\n>> 正在安装 masscan 工具\n\033[0m"
    Pentest_masscan_Install
    echo -e "\033[1;33m\n>> 正在安装 fscan 工具\n\033[0m"
    Pentest_fscan_Install
    echo -e "\033[1;33m\n>> 正在安装 pocsuite3 工具\n\033[0m"
    Pentest_pocsuite3_Install
    echo -e "\033[1;33m\n>> 正在安装 Nuclei 工具\n\033[0m"
    Pentest_Nuclei_Install
    echo -e "\033[1;33m\n>> 正在安装 rad 工具\n\033[0m"
    Pentest_rad_Install
    echo -e "\033[1;33m\n>> 正在安装 crawlergo 工具\n\033[0m"
    Pentest_crawlergo_Install
    echo -e "\033[1;33m\n>> 正在安装 w13scan 工具\n\033[0m"
    Pentest_w13scan_Install
    echo -e "\033[1;33m\n>> 正在安装 Responder 工具\n\033[0m"
    Pentest_Responder_Install
    echo -e "\033[1;33m\n>> 正在安装 Girsh 工具\n\033[0m"
    Pentest_Girsh_Install
    echo -e "\033[1;33m\n>> 正在安装 ApkAnalyser 工具\n\033[0m"
    Pentest_ApkAnalyser_Install

}

# -b
Base_Install(){

    echo -e "\033[1;33m\n>> 正在安装基础工具\n\033[0m"
    Base_Tools

}

# -s
Secure(){

    echo -e "\033[1;33m\n>> 正在安装 Fail2Ban\n\033[0m"
    Secure_Fail2Ban_Install
    echo -e "\033[1;33m\n>> 正在安装 chkrootkit\n\033[0m"
    Secure_chkrootkit_Install
    echo -e "\033[1;33m\n>> 正在安装 rkhunter\n\033[0m"
    Secure_rkhunter_Install
    echo -e "\033[1;33m\n>> 正在安装 河马 webshell 查杀工具\n\033[0m"
    Secure_shellpub_Install
    echo -e "\033[1;33m\n>> 正在安装 anti-portscan\n\033[0m"
    Secure_anti_portscan_Install

}

# -cloud
cloud(){

    echo -e "\033[1;33m\n>> 正在安装 Terraform\n\033[0m"
    Terraform_Install

    echo -e "\033[1;33m\n>> 是否继续安装 Serverless Framework? [y/N,默认No] \033[0m" && read -r input
    case $input in
        [yY][eE][sS]|[Yy])
            nn_Check
            echo -e "\033[1;33m\n>> 正在安装 Serverless Framework\n\033[0m"
            Serverless_Framework_Install
            ;;
        *)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mPass~\033[0m"
            ;;
    esac

    echo -e "\033[1;33m\n>> 是否继续安装 wrangler? [y/N,默认No] \033[0m" && read -r input
    case $input in
        [yY][eE][sS]|[Yy])
            Rust_Check
            echo -e "\033[1;33m\n>> 正在安装 wrangler\n\033[0m"
            wrangler_Install
            ;;
        *)
            echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32mPass~\033[0m"
            ;;
    esac

}

# -ssh
SSH(){

    echo -e "\033[1;33m\n>> 正在配置 SSH\n\033[0m"
    SSH_Tools

}

# -h
Help(){

    echo -e "\033[1;34m1. 批量化安装 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-b\033[0m \033[0;34m选项安装基本环境 \033[0m       \033[1;32m(gcc、make、git、vim、telnet、jq、unzip 等基本工具)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-p\033[0m \033[0;34m选项安装代理环境 \033[0m       \033[1;31m(警告:国外云服务器上不要用,会降速)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-d\033[0m \033[0;34m选项安装开发环境 \033[0m       \033[1;32m(python3、pip3、Go、Docker、Docker-Compose、SDKMAN)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-k\033[0m \033[0;34m选项安装渗透环境 \033[0m       \033[1;32m(hashcat、ffuf、OneForAll、ksubdomain、impacket 等渗透工具)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-s\033[0m \033[0;34m选项安装蓝队环境 \033[0m       \033[1;32m(Fail2Ban、chkrootkit、rkhunter、河马webshell查杀工具)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-f\033[0m \033[0;34m选项安装其他工具 \033[0m       \033[1;32m(Bash_Insulter、vlmcsd、AdguardTeam、trash-cli)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-cloud\033[0m \033[0;34m选项安装云应用 \033[0m     \033[1;32m(Terraform、Serverless Framework、wrangler)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-all\033[0m \033[0;34m选项全自动化部署\033[0m      \033[1;32m(默认不走代理,兼容 CentOS7/8,Debain10/9,Ubuntu20/18,Fedora33)\033[0m"
    echo -e ""
    echo -e "\033[1;33m(以下选项运行前,请先运行 -b 选项安装一遍基本环境!!!否则缺少库必报错)\033[0m"
    echo -e "\033[1;34m2. 开发环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-nn\033[0m \033[0;34m选项安装 npm & NodeJs 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-oraclejdk\033[0m \033[0;34m选项安装 oraclejdk 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-openjdk\033[0m \033[0;34m选项安装 openjdk 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-python3\033[0m \033[0;34m选项安装 python3 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-python2\033[0m \033[0;34m选项安装 python2 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-pip2-f\033[0m \033[0;34m选项强制安装 pip2 环境 \033[0m         \033[1;33m(建议在 -python2 选项失败的情况下运行)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-perl\033[0m \033[0;34m选项安装 perl 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-ruby\033[0m \033[0;34m选项安装 ruby 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-rust\033[0m \033[0;34m选项安装 rust 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-chromium\033[0m \033[0;34m选项安装 Chromium 环境 \033[0m       \033[1;33m(用于配合 -k 选项中的 rad、crawlergo) \033[0m"
    echo -e ""
    echo -e "\033[1;34m3. 蓝队服务 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-binwalk\033[0m \033[0;34m选项安装 binwalk 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-binwalk-f\033[0m \033[0;34m选项强制安装 binwalk 环境 \033[0m   \033[1;33m(建议在 -binwalk 选项失败的情况下运行)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-clamav\033[0m \033[0;34m选项安装 ClamAV 工具 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-hfish\033[0m \033[0;34m选项安装 HFish 蜜罐 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-lt\033[0m \033[0;34m选项部署 LogonTracer 环境 \033[0m          \033[1;33m(非超高配置机器不要部署,这个应用太吃配置了)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-suricata\033[0m \033[0;34m选项部署 Suricata 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-vol\033[0m \033[0;34m选项安装 volatility 取证工具 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-vol3\033[0m \033[0;34m选项安装 volatility3 取证工具 \033[0m"
    echo -e ""
    echo -e "\033[1;34m4. 红队服务 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-bypass\033[0m \033[0;34m选项部署 Bypass 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-cs\033[0m \033[0;34m选项部署 CobaltStrike 4.1 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-frp\033[0m \033[0;34m选项部署 frp 环境 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-goby\033[0m \033[0;34m选项部署 Goby 环境 \033[0m               \033[1;33m(需要图形化环境)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-nps\033[0m \033[0;34m选项部署 nps 环境 \033[0m"
    #echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-poc\033[0m \033[0;34m选项部署 公开的 poc 库 \033[0m            \033[1;33m(内容较多)\033[0m"
    echo -e ""
    echo -e "\033[1;34m5. 基于 Docker 的环境部署\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-arl\033[0m \033[0;34m选项部署 ARL 环境(872 MB)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-awvs13\033[0m \033[0;34m选项部署 AWVS13 环境(1.04 GB)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-mobsf\033[0m \033[0;34m选项部署 MobSF 环境(1.54 GB)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-nodejsscan\033[0m \033[0;34m选项部署 nodejsscan 环境(873 MB)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-viper\033[0m \033[0;34m选项部署 Viper 环境(2.1 GB)\033[0m\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-vulhub\033[0m \033[0;34m选项部署 vulhub 环境(210 MB)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-vulfocus\033[0m \033[0;34m选项部署 vulfocus 环境(1.04 GB)\033[0m"
    echo -e ""
    echo -e "\033[1;34m6. 杂项服务 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-asciinema\033[0m \033[0;34m选项安装 asciinema 截图工具 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-bt\033[0m \033[0;34m选项部署宝塔服务 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-music\033[0m \033[0;34m选项部署 UnblockNeteaseMusic 服务 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-sharry\033[0m \033[0;34m选项部署 sharry 文件服务 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-ssh\033[0m \033[0;34m选项配置 SSH 环境 \033[0m                \033[1;33m (RedHat 系默认可用,无需重复安装)\033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-ssr\033[0m \033[0;34m选项部署 ssr 工具 \033[0m"
    echo -e ""
    echo -e "\033[1;34m7. 其他 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-clear\033[0m \033[0;34m选项清理系统使用痕迹 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-info\033[0m \033[0;34m选项查看系统各项信息 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-optimize\033[0m \033[0;34m选项改善设备选项,优化性能 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-remove\033[0m \033[0;34m选项卸载国内 vps 云监控 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-rmlock\033[0m \033[0;34m选项运行除锁模块 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-swap\033[0m \033[0;34m选项配置 swap 分区 \033[0m"
    echo -e "\033[0;34m|- 使用\033[0m \033[1;34m-update\033[0m \033[0;34m选项更新 f8x 工具 \033[0m"
    echo -e ""
    echo -e "\033[1;37m脚本作者 r0fus0d ,需要添加工具支持或运行遇到问题欢迎提交 issue\033[0m"
    echo -e "\033[1;37m|- 感谢 the-fog 在开发过程中对我的折磨 \033[0m"
    echo -e "\033[1;37m|- 感谢 xidaner 在开发过程给出的无用建议 \033[0m"
    echo -e "\033[1;37m|- 感谢 RyuZU 在旁边表演喷火 \033[0m"
    echo -e ""

}

# -p
Proxy(){

    echo -e "\033[1;33m\n>> 是否需要更新 DNS 服务器? [Y/n,默认Yes]\033[0m"
    Change_DNS_IP
    Mirror
    echo -e "\033[1;33m\n>> 正在安装 dns 工具\n\033[0m"
    DNS_T00ls
    echo -e "\033[1;33m\n>> 正在配置基础编译环境\n\033[0m"
    Proxychains_Install
    echo -e "\033[1;33m\n>> 正在配置 pip 代理\n\033[0m"
    pip_Proxy > /dev/null
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已更新 pip 代理\033[0m"
    echo -e "\033[1;33m\n>> 正在配置 docker 代理\n\033[0m"
    Docker_Proxy > /dev/null
    systemctl restart docker 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m重启 docker 服务失败!(若未安装 docker 可忽略报错)\n\033[0m"
    systemctl daemon-reload 1> /dev/null 2>> /tmp/f8x_error.log || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m重启加载 systemd 程序的配置文件失败!(可忽略报错)\n\033[0m"
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m已更新 Docker 代理\033[0m"

}

# Main
Main(){

case "$(uname)" in
    *"Darwin"*)
	    echo "不支持 mac 平台"
	    exit 1
        ;;
    *"MINGW64_NT"*)
        echo "不支持 windows 平台"
        exit 1
        ;;
esac

if [[ $UID != 0 ]]; then
    echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m请以sudo 或 root 权限账户运行! \033[0m"
    exit 1
fi

setenforce 0 > /dev/null 2>&1

printf "\033c"
Info
echo -e "\033[1;36m \n-----开始执行----- \033[0m"

echo -e "\033[1;33m\n>> 正在初始化\n\033[0m"
Base_Dir
}

Main
Docker_Check

case "$1" in
    -b | b)
        Base_Install
        ;;
    -p | p)
        Proxy
        ;;
    -d | d)
        Base_Check
        Porxy_Switch
        Dev_Tools
        ;;
    -k | k)
        Base_Check
        Py_Check
        Porxy_Switch
        kali_Tools
        ;;
    -s | s)
        Base_Check
        Porxy_Switch
        Secure
        ;;
    -f | f)
        Base_Check
        Porxy_Switch
        Fun_Tools
        ;;
    -h | h)
        printf "\033c"
        Help
        ;;
    -cloud)
        Base_Check
        Porxy_Switch
        cloud
        ;;
    -all)
        all_Install
        ;;
    -nn)
        Base_Check
        Porxy_Switch
        nn_Install
        ;;
    -openjdk)
        Base_Check
        Porxy_Switch
        Openjdk_Install
        ;;
    -oraclejdk)
        Base_Check
        Porxy_Switch
        Oraclejdk_Install
        ;;
    -python3)
        Python3_Install
        ;;
    -python2)
        Python2_Install
        ;;
    -pip2-f)
        Base_Check
        Porxy_Switch
        pip2_Install
        ;;
    -perl)
        Base_Check
        Porxy_Switch
        Perl_Install
        ;;
    -ruby)
        Base_Check
        Porxy_Switch
        Ruby_Install
        ;;
    -rust)
        Base_Check
        Porxy_Switch
        Rust_Install
        ;;
    -chromium)
        Base_Check
        Porxy_Switch
        chromium_Install
        ;;
    -binwalk)
        Base_Check
        Porxy_Switch
        binwalk_Install
        ;;
    -binwalk-f)
        Base_Check
        Porxy_Switch
        binwalk_force_Install
        ;;
    -clamav)
        Base_Check
        Porxy_Switch
        clamav_Install
        ;;
    -vol)
        Base_Check
        Porxy_Switch
        pip2_Check
        Volatility_Install
        ;;
    -vol3)
        Base_Check
        Porxy_Switch
        pip3_Check
        volatility3_Install
        ;;
    -hfish)
        Porxy_Switch
        hfish_Install
        ;;
    -lt)
        Porxy_Switch
        lt_Install
        ;;
    -bypass)
        Base_Check
        Py_Check
        Porxy_Switch
        bypass_Install
        ;;
    -cs)
        Base_Check
        Porxy_Switch
        cs_Install
        ;;
    -frp)
        Base_Check
        Porxy_Switch
        frp_Install
        ;;
    -goby)
        Base_Check
        Porxy_Switch
        Goby_Install
        ;;
    -nps)
        Base_Check
        Porxy_Switch
        nps_Install
        ;;
    -suricata)
        Base_Check
        Porxy_Switch
        suricata_Install
        ;;
    -arl)
        Pentest_Base_Install
        Porxy_Switch
        arl_Install
        ;;
    -awvs13)
        Porxy_Switch
        awvs13_Install
        ;;
    -mobsf)
        Porxy_Switch
        mobsf_Install
        ;;
    -nodejsscan)
        Porxy_Switch
        nodejsscan_Install
        ;;
    -viper)
        Porxy_Switch
        viper_Install
        ;;
    -vulhub)
        Porxy_Switch
        vulhub_Install
        ;;
    -vulfocus)
        Porxy_Switch
        vulfocus_Install
        ;;
    -asciinema)
        asciinema_Install
        ;;
    -bt)
        Base_Check
        bt_Install
        ;;
    -music)
        Base_Check
        Porxy_Switch
        music_Install
        ;;
    -sharry)
        Base_Check
        Porxy_Switch
        sharry_Install
        ;;
    -ssh)
        SSH
        ;;
    -ssr)
        Base_Check
        ssr_Install
        ;;
    -clear)
        clear_log
        ;;
    -info)
        Base_Check
        System_info
        ;;
    -optimize)
        optimize_setting
        ;;
    -remove)
        remove_watcher
        ;;
    -rmlock)
        Rm_Lock

        case $Linux_Version in
            *"Kali"*|*"Ubuntu"*|*"Debian"*)
                dpkg --configure -a > /dev/null 2>&1
                ;;
            *) ;;
        esac

        ;;
    -swap)
        swap_setting
        ;;
    -update)
        curl -o f8x https://cdn.jsdelivr.net/gh/ffffffff0x/f8x@main/f8x > /dev/null 2>&1 && echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;32m[INFOR]\033[0m - \033[1;32m更新成功\033[0m" || echo -e "\033[1;36m$(date +"%H:%M:%S")\033[0m \033[1;31m[ERROR]\033[0m - \033[1;31m更新失败\n\033[0m"
        ;;
    -debug)
        #Base_Check
        #Pentest_Base_Install
        #Porxy_Switch
        echo -e "自毁程序启动,倒数5分钟"
        ;;
    *)
        echo -e ""
        echo -e "\033[1;34m使用 -h 选项查看帮助文档 \033[0m"
        ;;
esac

echo -e "\033[1;36m \n-----执行结束-----\n \033[0m"